The patch titled aio: make good_sigevent non-static has been removed from the -mm tree. Its filename was make-good_sigevent-non-static.patch This patch was dropped because an updated version will be merged ------------------------------------------------------ Subject: aio: make good_sigevent non-static From: Sbastien Dugu <sebastien.dugue@xxxxxxxx> Move good_sigevent() from posix-timers.c to signal.c where it belongs, and make it non-static so that it can be used by other subsystems. Signed-off-by: Sébastien Dugué <sebastien.dugue@xxxxxxxx> Cc: Zach Brown <zach.brown@xxxxxxxxxx> Cc: Suparna Bhattacharya <suparna@xxxxxxxxxx> Cc: Benjamin LaHaise <bcrl@xxxxxxxxx> Cc: Ulrich Drepper <drepper@xxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- include/linux/signal.h | 4 +++- kernel/posix-timers.c | 17 ----------------- kernel/signal.c | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 18 deletions(-) diff -puN include/linux/signal.h~make-good_sigevent-non-static include/linux/signal.h --- a/include/linux/signal.h~make-good_sigevent-non-static +++ a/include/linux/signal.h @@ -239,7 +239,9 @@ extern long do_sigpending(void __user *, extern int sigprocmask(int, sigset_t *, 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 int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, + struct pt_regs *regs, void *cookie); +extern struct task_struct *good_sigevent(sigevent_t *event); extern struct kmem_cache *sighand_cachep; diff -puN kernel/posix-timers.c~make-good_sigevent-non-static kernel/posix-timers.c --- a/kernel/posix-timers.c~make-good_sigevent-non-static +++ a/kernel/posix-timers.c @@ -367,23 +367,6 @@ static enum hrtimer_restart posix_timer_ return ret; } -static struct task_struct * good_sigevent(sigevent_t * event) -{ - struct task_struct *rtn = current->group_leader; - - if ((event->sigev_notify & SIGEV_THREAD_ID ) && - (!(rtn = find_task_by_pid(event->sigev_notify_thread_id)) || - rtn->tgid != current->tgid || - (event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_SIGNAL)) - return NULL; - - if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) && - ((event->sigev_signo <= 0) || (event->sigev_signo > SIGRTMAX))) - return NULL; - - return rtn; -} - void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock) { if ((unsigned) clock_id >= MAX_CLOCKS) { diff -puN kernel/signal.c~make-good_sigevent-non-static kernel/signal.c --- a/kernel/signal.c~make-good_sigevent-non-static +++ a/kernel/signal.c @@ -1089,6 +1089,30 @@ int group_send_sig_info(int sig, struct return ret; } +/*** + * good_sigevent - check and get target task from a sigevent. + * @event: the sigevent to be checked + * + * This function must be called with the tasklist_lock held for reading. + */ +struct task_struct *good_sigevent(sigevent_t *event) +{ + struct task_struct *task = current->group_leader; + + if ((event->sigev_notify & SIGEV_THREAD_ID) == SIGEV_THREAD_ID) { + task = find_task_by_pid(event->sigev_notify_thread_id); + + if (!task || task->tgid != current->tgid) + return NULL; + } else if (event->sigev_notify == SIGEV_SIGNAL) { + if (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX) + return NULL; + } else + return NULL; + + return task; +} + /* * kill_pgrp_info() sends a signal to a process group: this is what the tty * control characters do (^C, ^Z etc) _ Patches currently in -mm which might be from sebastien.dugue@xxxxxxxx are make-good_sigevent-non-static.patch aio-completion-signal-notification.patch aio-completion-signal-notification-fix.patch add-listio-syscall-support.patch add-listio-syscall-support-fix.patch add-listio-syscall-support-fix-2.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html