From: "Sébastien Dugué" <sebastien.dugue@bull.net>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Suparna Bhattacharya <suparna@in.ibm.com>,
Ulrich Drepper <drepper@redhat.com>,
Zach Brown <zach.brown@oracle.com>, Dave Jones <davej@redhat.com>,
Jean Pierre Dion <jean-pierre.dion@bull.net>,
"linux-aio@kvack.org" <linux-aio@kvack.org>,
"moi @ Bull" <sebastien.dugue@bull.net>
Subject: [PATCH -mm 2/3][AIO] - AIO completion signal notification
Date: Thu, 09 Nov 2006 16:59:00 +0100 [thread overview]
Message-ID: <1163087940.3879.41.camel@frecb000686> (raw)
In-Reply-To: <1163087717.3879.34.camel@frecb000686>
Export good_sigevent()
Move good_sigevent() from posix-timers.c to signal.c where it belongs,
and export it so that it can be used by other subsystems.
include/linux/signal.h | 2 ++
kernel/posix-timers.c | 17 -----------------
kernel/signal.c | 23 +++++++++++++++++++++++
3 files changed, 25 insertions(+), 17 deletions(-)
Signed-off-by: Sébastien Dugué <sebastien.dugue@bull.net>
Index: linux-2.6.19-rc5-mm1/include/linux/signal.h
===================================================================
--- linux-2.6.19-rc5-mm1.orig/include/linux/signal.h 2006-11-09 10:43:58.000000000 +0100
+++ linux-2.6.19-rc5-mm1/include/linux/signal.h 2006-11-09 10:46:23.000000000 +0100
@@ -241,6 +241,8 @@ 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 * good_sigevent(sigevent_t *);
+
#endif /* __KERNEL__ */
#endif /* _LINUX_SIGNAL_H */
Index: linux-2.6.19-rc5-mm1/kernel/posix-timers.c
===================================================================
--- linux-2.6.19-rc5-mm1.orig/kernel/posix-timers.c 2006-11-09 10:43:58.000000000 +0100
+++ linux-2.6.19-rc5-mm1/kernel/posix-timers.c 2006-11-09 10:46:23.000000000 +0100
@@ -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) {
Index: linux-2.6.19-rc5-mm1/kernel/signal.c
===================================================================
--- linux-2.6.19-rc5-mm1.orig/kernel/signal.c 2006-11-09 10:43:58.000000000 +0100
+++ linux-2.6.19-rc5-mm1/kernel/signal.c 2006-11-09 10:46:23.000000000 +0100
@@ -1189,6 +1189,29 @@ 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 tasklist_lock held for reading.
+ */
+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;
+}
+
/*
* kill_pgrp_info() sends a signal to a process group: this is what the tty
* control characters do (^C, ^Z etc)
next prev parent reply other threads:[~2006-11-09 15:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-09 15:55 [PATCH -mm 0/3][AIO] - AIO completion signal notification Sébastien Dugué
2006-11-09 15:58 ` [PATCH -mm 1/3][AIO] " Sébastien Dugué
2006-11-09 15:59 ` Sébastien Dugué [this message]
2006-11-09 15:59 ` [PATCH -mm 3/3][AIO] " Sébastien Dugué
2006-11-09 18:46 ` Badari Pulavarty
2006-11-10 9:05 ` Sébastien Dugué
2006-11-09 19:08 ` Christoph Hellwig
2006-11-09 19:27 ` Badari Pulavarty
2006-11-10 9:20 ` Sébastien Dugué
2006-11-10 9:14 ` Sébastien Dugué
2006-11-09 19:18 ` Badari Pulavarty
2006-11-10 9:22 ` Sébastien Dugué
2006-11-10 1:52 ` Badari Pulavarty
2006-11-10 1:54 ` Badari Pulavarty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1163087940.3879.41.camel@frecb000686 \
--to=sebastien.dugue@bull.net \
--cc=davej@redhat.com \
--cc=drepper@redhat.com \
--cc=jean-pierre.dion@bull.net \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=suparna@in.ibm.com \
--cc=zach.brown@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.