• Home
  • Raw
  • Download

Lines Matching refs:q

190 	struct sigqueue *q = NULL;  in __sigqueue_alloc()  local
204 q = kmem_cache_alloc(sigqueue_cachep, flags); in __sigqueue_alloc()
205 if (unlikely(q == NULL)) { in __sigqueue_alloc()
209 INIT_LIST_HEAD(&q->list); in __sigqueue_alloc()
210 q->flags = 0; in __sigqueue_alloc()
211 q->user = user; in __sigqueue_alloc()
214 return q; in __sigqueue_alloc()
217 static void __sigqueue_free(struct sigqueue *q) in __sigqueue_free() argument
219 if (q->flags & SIGQUEUE_PREALLOC) in __sigqueue_free()
221 atomic_dec(&q->user->sigpending); in __sigqueue_free()
222 free_uid(q->user); in __sigqueue_free()
223 kmem_cache_free(sigqueue_cachep, q); in __sigqueue_free()
228 struct sigqueue *q; in flush_sigqueue() local
232 q = list_entry(queue->list.next, struct sigqueue , list); in flush_sigqueue()
233 list_del_init(&q->list); in flush_sigqueue()
234 __sigqueue_free(q); in flush_sigqueue()
255 struct sigqueue *q, *n; in __flush_itimer_signals() local
260 list_for_each_entry_safe(q, n, &pending->list, list) { in __flush_itimer_signals()
261 int sig = q->info.si_signo; in __flush_itimer_signals()
263 if (likely(q->info.si_code != SI_TIMER)) { in __flush_itimer_signals()
267 list_del_init(&q->list); in __flush_itimer_signals()
268 __sigqueue_free(q); in __flush_itimer_signals()
361 struct sigqueue *q, *first = NULL; in collect_signal() local
367 list_for_each_entry(q, &list->list, list) { in collect_signal()
368 if (q->info.si_signo == sig) { in collect_signal()
371 first = q; in collect_signal()
533 struct sigqueue *q, *n; in rm_from_queue_full() local
541 list_for_each_entry_safe(q, n, &s->list, list) { in rm_from_queue_full()
542 if (sigismember(mask, q->info.si_signo)) { in rm_from_queue_full()
543 list_del_init(&q->list); in rm_from_queue_full()
544 __sigqueue_free(q); in rm_from_queue_full()
557 struct sigqueue *q, *n; in rm_from_queue() local
563 list_for_each_entry_safe(q, n, &s->list, list) { in rm_from_queue()
564 if (q->info.si_signo < SIGRTMIN && in rm_from_queue()
565 (mask & sigmask(q->info.si_signo))) { in rm_from_queue()
566 list_del_init(&q->list); in rm_from_queue()
567 __sigqueue_free(q); in rm_from_queue()
820 struct sigqueue *q; in send_signal() local
851 q = __sigqueue_alloc(t, GFP_ATOMIC, (sig < SIGRTMIN && in send_signal()
854 if (q) { in send_signal()
855 list_add_tail(&q->list, &pending->list); in send_signal()
858 q->info.si_signo = sig; in send_signal()
859 q->info.si_errno = 0; in send_signal()
860 q->info.si_code = SI_USER; in send_signal()
861 q->info.si_pid = task_tgid_nr_ns(current, in send_signal()
863 q->info.si_uid = current_uid(); in send_signal()
866 q->info.si_signo = sig; in send_signal()
867 q->info.si_errno = 0; in send_signal()
868 q->info.si_code = SI_KERNEL; in send_signal()
869 q->info.si_pid = 0; in send_signal()
870 q->info.si_uid = 0; in send_signal()
873 copy_siginfo(&q->info, info); in send_signal()
1277 struct sigqueue *q; in sigqueue_alloc() local
1279 if ((q = __sigqueue_alloc(current, GFP_KERNEL, 0))) in sigqueue_alloc()
1280 q->flags |= SIGQUEUE_PREALLOC; in sigqueue_alloc()
1281 return(q); in sigqueue_alloc()
1284 void sigqueue_free(struct sigqueue *q) in sigqueue_free() argument
1289 BUG_ON(!(q->flags & SIGQUEUE_PREALLOC)); in sigqueue_free()
1296 q->flags &= ~SIGQUEUE_PREALLOC; in sigqueue_free()
1301 if (!list_empty(&q->list)) in sigqueue_free()
1302 q = NULL; in sigqueue_free()
1305 if (q) in sigqueue_free()
1306 __sigqueue_free(q); in sigqueue_free()
1309 int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group) in send_sigqueue() argument
1311 int sig = q->info.si_signo; in send_sigqueue()
1316 BUG_ON(!(q->flags & SIGQUEUE_PREALLOC)); in send_sigqueue()
1327 if (unlikely(!list_empty(&q->list))) { in send_sigqueue()
1332 BUG_ON(q->info.si_code != SI_TIMER); in send_sigqueue()
1333 q->info.si_overrun++; in send_sigqueue()
1336 q->info.si_overrun = 0; in send_sigqueue()
1340 list_add_tail(&q->list, &pending->list); in send_sigqueue()