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()
891 static int do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, in do_smart_wakeup_zero() argument
899 if (sops) { in do_smart_wakeup_zero()
901 int num = sops[i].sem_num; in do_smart_wakeup_zero()
984 do_smart_wakeup_zero(sma, q->sops, q->nsops, wake_q); in update_queue()
1003 static void set_semotime(struct sem_array *sma, struct sembuf *sops) in set_semotime() argument
1005 if (sops == NULL) { in set_semotime()
1008 sma->sems[sops[0].sem_num].sem_otime = in set_semotime()
1027 static void do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, in do_smart_update() argument
1032 otime |= do_smart_wakeup_zero(sma, sops, nsops, wake_q); in do_smart_update()
1038 if (!sops) { in do_smart_update()
1056 if (sops[i].sem_op > 0) { in do_smart_update()
1058 sops[i].sem_num, wake_q); in do_smart_update()
1064 set_semotime(sma, sops); in do_smart_update()
1989 struct sembuf *sops = fast_sops, *sop; in do_semtimedop() local
2004 sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); in do_semtimedop()
2005 if (sops == NULL) in do_semtimedop()
2009 if (copy_from_user(sops, tsops, nsops * sizeof(*tsops))) { in do_semtimedop()
2024 for (sop = sops; sop < sops + nsops; sop++) { in do_semtimedop()
2077 error = security_sem_semop(&sma->sem_perm, sops, nsops, alter); in do_semtimedop()
2084 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2105 queue.sops = sops; in do_semtimedop()
2121 do_smart_update(sma, sops, nsops, 1, &wake_q); in do_semtimedop()
2123 set_semotime(sma, sops); in do_semtimedop()
2140 int idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in do_semtimedop()
2202 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2232 if (sops != fast_sops) in do_semtimedop()
2233 kvfree(sops); in do_semtimedop()