From: Sébastien Dugué Allow subsystems to directly call into __sigqueue_alloc() and __sigqueue_free. This is used by the AIO signal notification patch. Signed-off-by: Sébastien Dugué Cc: Bharata B Rao Cc: Christoph Hellwig Cc: Suparna Bhattacharya Cc: Zach Brown Cc: Oleg Nesterov Cc: Badari Pulavarty Cc: Benjamin LaHaise Cc: Jean Pierre Dion Signed-off-by: Andrew Morton --- include/linux/signal.h | 3 +++ kernel/signal.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff -puN include/linux/signal.h~make-__sigqueue_free-and include/linux/signal.h --- a/include/linux/signal.h~make-__sigqueue_free-and +++ a/include/linux/signal.h @@ -241,6 +241,9 @@ extern int sigprocmask(int, sigset_t *, struct pt_regs; extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); extern struct task_struct * sigevent_find_task(sigevent_t *); +extern struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags, + int override_rlimit); +extern void __sigqueue_free(struct sigqueue *q); extern struct kmem_cache *sighand_cachep; diff -puN kernel/signal.c~make-__sigqueue_free-and kernel/signal.c --- a/kernel/signal.c~make-__sigqueue_free-and +++ a/kernel/signal.c @@ -267,8 +267,8 @@ next_signal(struct sigpending *pending, return sig; } -static struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags, - int override_rlimit) +struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags, + int override_rlimit) { struct sigqueue *q = NULL; struct user_struct *user; @@ -294,7 +294,7 @@ static struct sigqueue *__sigqueue_alloc return(q); } -static void __sigqueue_free(struct sigqueue *q) +void __sigqueue_free(struct sigqueue *q) { if (q->flags & SIGQUEUE_PREALLOC) return; _