diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-10-02 05:17:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-02 10:57:15 -0400 |
commit | 2425c08b37244005ff221efe4957d8aaff18609c (patch) | |
tree | 488a298587acb651bd6964c0f9d53c9f48327362 /kernel/signal.c | |
parent | 43fa1adb9334bf4585cd53144eb5911488f85bc7 (diff) |
[PATCH] usb: fixup usb so it uses struct pid
The problem with remembering a user space process by its pid is that it is
possible that the process will exit, pid wrap around will occur.
Converting to a struct pid avoid that problem, and paves the way for
implementing a pid namespace.
Also since usb is the only user of kill_proc_info_as_uid rename
kill_proc_info_as_uid to kill_pid_info_as_uid and have the new version take
a struct pid.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 5230ddcb1757..7ed8d5304bec 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -1136,8 +1136,8 @@ kill_proc_info(int sig, struct siginfo *info, pid_t pid) | |||
1136 | return error; | 1136 | return error; |
1137 | } | 1137 | } |
1138 | 1138 | ||
1139 | /* like kill_proc_info(), but doesn't use uid/euid of "current" */ | 1139 | /* like kill_pid_info(), but doesn't use uid/euid of "current" */ |
1140 | int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid, | 1140 | int kill_pid_info_as_uid(int sig, struct siginfo *info, struct pid *pid, |
1141 | uid_t uid, uid_t euid, u32 secid) | 1141 | uid_t uid, uid_t euid, u32 secid) |
1142 | { | 1142 | { |
1143 | int ret = -EINVAL; | 1143 | int ret = -EINVAL; |
@@ -1147,7 +1147,7 @@ int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid, | |||
1147 | return ret; | 1147 | return ret; |
1148 | 1148 | ||
1149 | read_lock(&tasklist_lock); | 1149 | read_lock(&tasklist_lock); |
1150 | p = find_task_by_pid(pid); | 1150 | p = pid_task(pid, PIDTYPE_PID); |
1151 | if (!p) { | 1151 | if (!p) { |
1152 | ret = -ESRCH; | 1152 | ret = -ESRCH; |
1153 | goto out_unlock; | 1153 | goto out_unlock; |
@@ -1171,7 +1171,7 @@ out_unlock: | |||
1171 | read_unlock(&tasklist_lock); | 1171 | read_unlock(&tasklist_lock); |
1172 | return ret; | 1172 | return ret; |
1173 | } | 1173 | } |
1174 | EXPORT_SYMBOL_GPL(kill_proc_info_as_uid); | 1174 | EXPORT_SYMBOL_GPL(kill_pid_info_as_uid); |
1175 | 1175 | ||
1176 | /* | 1176 | /* |
1177 | * kill_something_info() interprets pid in interesting ways just like kill(2). | 1177 | * kill_something_info() interprets pid in interesting ways just like kill(2). |