Lines Matching refs:sops
136 struct sembuf *sops; /* array of pending operations */ member
295 curr = &sma->sems[q->sops[0].sem_num]; in unmerge_queues()
386 static inline int sem_lock(struct sem_array *sma, struct sembuf *sops, in sem_lock() argument
408 idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in sem_lock()
425 return sops->sem_num; in sem_lock()
446 return sops->sem_num; in sem_lock()
649 struct sembuf *sops; in perform_atomic_semop_slow() local
652 sops = q->sops; in perform_atomic_semop_slow()
656 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop_slow()
684 while (sop >= sops) { in perform_atomic_semop_slow()
705 while (sop >= sops) { in perform_atomic_semop_slow()
721 struct sembuf *sops; in perform_atomic_semop() local
724 sops = q->sops; in perform_atomic_semop()
737 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
763 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
889 static int do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, in do_smart_wakeup_zero() argument
897 if (sops) { in do_smart_wakeup_zero()
899 int num = sops[i].sem_num; in do_smart_wakeup_zero()
982 do_smart_wakeup_zero(sma, q->sops, q->nsops, wake_q); in update_queue()
1001 static void set_semotime(struct sem_array *sma, struct sembuf *sops) in set_semotime() argument
1003 if (sops == NULL) { in set_semotime()
1006 sma->sems[sops[0].sem_num].sem_otime = in set_semotime()
1025 static void do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, in do_smart_update() argument
1030 otime |= do_smart_wakeup_zero(sma, sops, nsops, wake_q); in do_smart_update()
1036 if (!sops) { in do_smart_update()
1054 if (sops[i].sem_op > 0) { in do_smart_update()
1056 sops[i].sem_num, wake_q); in do_smart_update()
1062 set_semotime(sma, sops); in do_smart_update()
1987 struct sembuf *sops = fast_sops, *sop; in do_semtimedop() local
2002 sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); in do_semtimedop()
2003 if (sops == NULL) in do_semtimedop()
2007 if (copy_from_user(sops, tsops, nsops * sizeof(*tsops))) { in do_semtimedop()
2022 for (sop = sops; sop < sops + nsops; sop++) { in do_semtimedop()
2075 error = security_sem_semop(&sma->sem_perm, sops, nsops, alter); in do_semtimedop()
2082 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2103 queue.sops = sops; in do_semtimedop()
2119 do_smart_update(sma, sops, nsops, 1, &wake_q); in do_semtimedop()
2121 set_semotime(sma, sops); in do_semtimedop()
2138 int idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in do_semtimedop()
2199 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2229 if (sops != fast_sops) in do_semtimedop()
2230 kvfree(sops); in do_semtimedop()