Lines Matching refs:q
419 struct sigqueue *q = NULL; in __sigqueue_alloc() local
439 q = kmem_cache_alloc(sigqueue_cachep, gfp_flags); in __sigqueue_alloc()
444 if (unlikely(q == NULL)) { in __sigqueue_alloc()
447 INIT_LIST_HEAD(&q->list); in __sigqueue_alloc()
448 q->flags = sigqueue_flags; in __sigqueue_alloc()
449 q->ucounts = ucounts; in __sigqueue_alloc()
451 return q; in __sigqueue_alloc()
454 static void __sigqueue_free(struct sigqueue *q) in __sigqueue_free() argument
456 if (q->flags & SIGQUEUE_PREALLOC) in __sigqueue_free()
458 if (q->ucounts) { in __sigqueue_free()
459 dec_rlimit_put_ucounts(q->ucounts, UCOUNT_RLIMIT_SIGPENDING); in __sigqueue_free()
460 q->ucounts = NULL; in __sigqueue_free()
462 kmem_cache_free(sigqueue_cachep, q); in __sigqueue_free()
467 struct sigqueue *q; in flush_sigqueue() local
471 q = list_entry(queue->list.next, struct sigqueue , list); in flush_sigqueue()
472 list_del_init(&q->list); in flush_sigqueue()
473 __sigqueue_free(q); in flush_sigqueue()
496 struct sigqueue *q, *n; in __flush_itimer_signals() local
501 list_for_each_entry_safe(q, n, &pending->list, list) { in __flush_itimer_signals()
502 int sig = q->info.si_signo; in __flush_itimer_signals()
504 if (likely(q->info.si_code != SI_TIMER)) { in __flush_itimer_signals()
508 list_del_init(&q->list); in __flush_itimer_signals()
509 __sigqueue_free(q); in __flush_itimer_signals()
579 struct sigqueue *q, *first = NULL; in collect_signal() local
585 list_for_each_entry(q, &list->list, list) { in collect_signal()
586 if (q->info.si_signo == sig) { in collect_signal()
589 first = q; in collect_signal()
722 struct sigqueue *q, *sync = NULL; in dequeue_synchronous_signal() local
733 list_for_each_entry(q, &pending->list, list) { in dequeue_synchronous_signal()
735 if ((q->info.si_code > SI_USER) && in dequeue_synchronous_signal()
736 (sigmask(q->info.si_signo) & SYNCHRONOUS_MASK)) { in dequeue_synchronous_signal()
737 sync = q; in dequeue_synchronous_signal()
746 list_for_each_entry_continue(q, &pending->list, list) { in dequeue_synchronous_signal()
747 if (q->info.si_signo == sync->info.si_signo) in dequeue_synchronous_signal()
796 struct sigqueue *q, *n; in flush_sigqueue_mask() local
804 list_for_each_entry_safe(q, n, &s->list, list) { in flush_sigqueue_mask()
805 if (sigismember(mask, q->info.si_signo)) { in flush_sigqueue_mask()
806 list_del_init(&q->list); in flush_sigqueue_mask()
807 __sigqueue_free(q); in flush_sigqueue_mask()
1096 struct sigqueue *q; in __send_signal_locked() local
1137 q = __sigqueue_alloc(sig, t, GFP_ATOMIC, override_rlimit, 0); in __send_signal_locked()
1139 if (q) { in __send_signal_locked()
1140 list_add_tail(&q->list, &pending->list); in __send_signal_locked()
1143 clear_siginfo(&q->info); in __send_signal_locked()
1144 q->info.si_signo = sig; in __send_signal_locked()
1145 q->info.si_errno = 0; in __send_signal_locked()
1146 q->info.si_code = SI_USER; in __send_signal_locked()
1147 q->info.si_pid = task_tgid_nr_ns(current, in __send_signal_locked()
1150 q->info.si_uid = in __send_signal_locked()
1156 clear_siginfo(&q->info); in __send_signal_locked()
1157 q->info.si_signo = sig; in __send_signal_locked()
1158 q->info.si_errno = 0; in __send_signal_locked()
1159 q->info.si_code = SI_KERNEL; in __send_signal_locked()
1160 q->info.si_pid = 0; in __send_signal_locked()
1161 q->info.si_uid = 0; in __send_signal_locked()
1164 copy_siginfo(&q->info, info); in __send_signal_locked()
1958 void sigqueue_free(struct sigqueue *q) in sigqueue_free() argument
1963 BUG_ON(!(q->flags & SIGQUEUE_PREALLOC)); in sigqueue_free()
1970 q->flags &= ~SIGQUEUE_PREALLOC; in sigqueue_free()
1975 if (!list_empty(&q->list)) in sigqueue_free()
1976 q = NULL; in sigqueue_free()
1979 if (q) in sigqueue_free()
1980 __sigqueue_free(q); in sigqueue_free()
1983 int send_sigqueue(struct sigqueue *q, struct pid *pid, enum pid_type type) in send_sigqueue() argument
1985 int sig = q->info.si_signo; in send_sigqueue()
1991 BUG_ON(!(q->flags & SIGQUEUE_PREALLOC)); in send_sigqueue()
2005 if (unlikely(!list_empty(&q->list))) { in send_sigqueue()
2010 BUG_ON(q->info.si_code != SI_TIMER); in send_sigqueue()
2011 q->info.si_overrun++; in send_sigqueue()
2015 q->info.si_overrun = 0; in send_sigqueue()
2019 list_add_tail(&q->list, &pending->list); in send_sigqueue()
2024 trace_signal_generate(sig, &q->info, t, type != PIDTYPE_PID, result); in send_sigqueue()