Lines Matching refs:sops
136 struct sembuf *sops; /* array of pending operations */ member
272 curr = &sma->sems[q->sops[0].sem_num]; in unmerge_queues()
367 static inline int sem_lock(struct sem_array *sma, struct sembuf *sops, in sem_lock() argument
389 idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in sem_lock()
406 return sops->sem_num; in sem_lock()
427 return sops->sem_num; in sem_lock()
631 struct sembuf *sops; in perform_atomic_semop_slow() local
634 sops = q->sops; in perform_atomic_semop_slow()
638 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop_slow()
666 while (sop >= sops) { in perform_atomic_semop_slow()
687 while (sop >= sops) { in perform_atomic_semop_slow()
703 struct sembuf *sops; in perform_atomic_semop() local
706 sops = q->sops; in perform_atomic_semop()
719 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
745 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
874 static int do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, in do_smart_wakeup_zero() argument
882 if (sops) { in do_smart_wakeup_zero()
884 int num = sops[i].sem_num; in do_smart_wakeup_zero()
967 do_smart_wakeup_zero(sma, q->sops, q->nsops, wake_q); in update_queue()
986 static void set_semotime(struct sem_array *sma, struct sembuf *sops) in set_semotime() argument
988 if (sops == NULL) { in set_semotime()
991 sma->sems[sops[0].sem_num].sem_otime = in set_semotime()
1010 static void do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, in do_smart_update() argument
1015 otime |= do_smart_wakeup_zero(sma, sops, nsops, wake_q); in do_smart_update()
1021 if (!sops) { in do_smart_update()
1039 if (sops[i].sem_op > 0) { in do_smart_update()
1041 sops[i].sem_num, wake_q); in do_smart_update()
1047 set_semotime(sma, sops); in do_smart_update()
1972 struct sembuf *sops = fast_sops, *sop; in do_semtimedop() local
1987 sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); in do_semtimedop()
1988 if (sops == NULL) in do_semtimedop()
1992 if (copy_from_user(sops, tsops, nsops * sizeof(*tsops))) { in do_semtimedop()
2007 for (sop = sops; sop < sops + nsops; sop++) { in do_semtimedop()
2060 error = security_sem_semop(&sma->sem_perm, sops, nsops, alter); in do_semtimedop()
2067 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2088 queue.sops = sops; in do_semtimedop()
2104 do_smart_update(sma, sops, nsops, 1, &wake_q); in do_semtimedop()
2106 set_semotime(sma, sops); in do_semtimedop()
2123 int idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in do_semtimedop()
2187 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2214 if (sops != fast_sops) in do_semtimedop()
2215 kvfree(sops); in do_semtimedop()