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()
635 struct sembuf *sops; in perform_atomic_semop_slow() local
638 sops = q->sops; in perform_atomic_semop_slow()
642 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop_slow()
670 while (sop >= sops) { in perform_atomic_semop_slow()
691 while (sop >= sops) { in perform_atomic_semop_slow()
707 struct sembuf *sops; in perform_atomic_semop() local
710 sops = q->sops; in perform_atomic_semop()
723 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
749 for (sop = sops; sop < sops + nsops; sop++) { in perform_atomic_semop()
878 static int do_smart_wakeup_zero(struct sem_array *sma, struct sembuf *sops, in do_smart_wakeup_zero() argument
886 if (sops) { in do_smart_wakeup_zero()
888 int num = sops[i].sem_num; in do_smart_wakeup_zero()
971 do_smart_wakeup_zero(sma, q->sops, q->nsops, wake_q); in update_queue()
990 static void set_semotime(struct sem_array *sma, struct sembuf *sops) in set_semotime() argument
992 if (sops == NULL) { in set_semotime()
995 sma->sems[sops[0].sem_num].sem_otime = in set_semotime()
1014 static void do_smart_update(struct sem_array *sma, struct sembuf *sops, int nsops, in do_smart_update() argument
1019 otime |= do_smart_wakeup_zero(sma, sops, nsops, wake_q); in do_smart_update()
1025 if (!sops) { in do_smart_update()
1043 if (sops[i].sem_op > 0) { in do_smart_update()
1045 sops[i].sem_num, wake_q); in do_smart_update()
1051 set_semotime(sma, sops); in do_smart_update()
1949 struct sembuf *sops = fast_sops, *sop; in do_semtimedop() local
1964 sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); in do_semtimedop()
1965 if (sops == NULL) in do_semtimedop()
1969 if (copy_from_user(sops, tsops, nsops * sizeof(*tsops))) { in do_semtimedop()
1984 for (sop = sops; sop < sops + nsops; sop++) { in do_semtimedop()
2037 error = security_sem_semop(&sma->sem_perm, sops, nsops, alter); in do_semtimedop()
2044 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2065 queue.sops = sops; in do_semtimedop()
2081 do_smart_update(sma, sops, nsops, 1, &wake_q); in do_semtimedop()
2083 set_semotime(sma, sops); in do_semtimedop()
2100 int idx = array_index_nospec(sops->sem_num, sma->sem_nsems); in do_semtimedop()
2164 locknum = sem_lock(sma, sops, nsops); in do_semtimedop()
2191 if (sops != fast_sops) in do_semtimedop()
2192 kvfree(sops); in do_semtimedop()