kernel-ark/drivers/usb/core
Harald Welte 46113830a1 [PATCH] Fix signal sending in usbdevio on async URB completion
If a process issues an URB from userspace and (starts to) terminate
before the URB comes back, we run into the issue described above.  This
is because the urb saves a pointer to "current" when it is posted to the
device, but there's no guarantee that this pointer is still valid
afterwards.

In fact, there are three separate issues:

1) the pointer to "current" can become invalid, since the task could be
   completely gone when the URB completion comes back from the device.

2) Even if the saved task pointer is still pointing to a valid task_struct,
   task_struct->sighand could have gone meanwhile.

3) Even if the process is perfectly fine, permissions may have changed,
   and we can no longer send it a signal.

So what we do instead, is to save the PID and uid's of the process, and
introduce a new kill_proc_info_as_uid() function.

Signed-off-by: Harald Welte <laforge@gnumonks.org>
[ Fixed up types and added symbol exports ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-10 16:16:33 -07:00
..
buffer.c [PATCH] USB: Fix kmalloc's flags type in USB 2005-07-12 11:52:56 -07:00
config.c [PATCH] USB: fix up some sparse warnings about static functions that aren't static. 2005-04-18 17:39:24 -07:00
devices.c [PATCH] make driver's name be const char * 2005-06-20 15:15:01 -07:00
devio.c [PATCH] Fix signal sending in usbdevio on async URB completion 2005-10-10 16:16:33 -07:00
file.c [PATCH] USB: trivial error path fix 2005-06-20 15:15:09 -07:00
hcd-pci.c [PATCH] usb/core/hcd-pci.c: don't free_irq() on suspend 2005-09-30 09:23:30 -07:00
hcd.c [PATCH] usbcore: small changes to HCD glue layer 2005-09-12 12:23:39 -07:00
hcd.h [PATCH] USB: tweak highspeed timing calculations 2005-09-08 16:28:25 -07:00
hub.c [PATCH] USB: relax usbcore reset timings 2005-09-12 12:23:49 -07:00
hub.h [PATCH] ehci: add think_time 2005-09-08 16:28:35 -07:00
inode.c [PATCH] USB: real nodes instead of usbfs 2005-09-08 16:22:29 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] USB: real nodes instead of usbfs 2005-09-08 16:22:29 -07:00
message.c [PATCH] driver core: add helper device_is_registered() 2005-09-22 07:58:24 -07:00
otg_whitelist.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysfs.c [PATCH] USB: add bMaxPacketSize0 attribute to sysfs 2005-07-12 11:52:54 -07:00
urb.c [PATCH] USB: URB_ASYNC_UNLINK flag removed from the kernel 2005-09-08 16:23:04 -07:00
usb.c [PATCH] driver core: add helper device_is_registered() 2005-09-22 07:58:24 -07:00
usb.h [PATCH] USB: real nodes instead of usbfs 2005-09-08 16:22:29 -07:00