OpenCloudOS-Kernel/drivers
Oliver Neukum 079034073f HID: hiddev cleanup -- handle all error conditions properly
This is a cleanup of hiddev and fixes the following issues:

- thread safety by locking in read & ioctl, introducing a per device mutex
- race between ioctl and disconnect, introducing a flag and locking
  in form of a per low level device mutex
- race between open and other methods, making sure only successfully
  opened devices are put on the list, changing order of events
- range checking both upper and lower limits of the minor range
- make sure further calls to open fail for unplugged devices even if
  the device still has opened files
- error checking for low level open
- possible loss of wakeup events, using standard waiting macros
- race in initialisation by moving registration after full initialisation

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-01-04 01:00:53 +01:00
..
accessibility
acpi cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t 2009-01-03 19:15:40 +01:00
amba
ata Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-12-30 17:43:10 -08:00
atm atm: Driver for Solos PCI ADSL2+ card. 2008-12-26 01:26:11 -08:00
auxdisplay
base Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-03 12:04:39 -08:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2008-12-30 17:37:25 -08:00
bluetooth Bluetooth: Enable per-module dynamic debug messages 2008-11-30 12:17:28 +01:00
cdrom cdrom: reduce stack usage of mmc_ioctl_dvd_read_struct 2008-12-29 08:28:43 +01:00
char sparseirq: move set/get_timer_rand_state back to .c 2009-01-03 12:01:23 -08:00
clocksource Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
connector
cpufreq
cpuidle
crypto crypto: talitos - Ack done interrupt in isr instead of tasklet 2008-12-25 11:02:33 +11:00
dca
dio
dma async_xor: dma_map destination DMA_BIDIRECTIONAL 2008-12-08 13:46:00 -07:00
edac Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
eisa
firewire firewire: fw-ohci: fix IOMMU resource exhaustion 2008-12-10 12:45:34 +01:00
firmware DMI: add dmi_match 2008-12-29 07:39:34 -05:00
gpio
gpu drm/i915: fix modeset devname allocation + agp init return check. 2008-12-29 18:18:19 +10:00
hid HID: hiddev cleanup -- handle all error conditions properly 2009-01-04 01:00:53 +01:00
hwmon hwmon: applesmc: make applesmc load automatically on startup 2008-12-01 19:55:24 -08:00
i2c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
ide ide-atapi: start dma in a drive-specific way 2009-01-02 16:12:56 +01:00
idle
ieee1394 ieee1394: add quirk fix for Freecom HDD 2008-12-14 01:13:13 +01:00
infiniband Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-12-31 23:05:57 +10:30
input Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
leds
lguest Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask 2009-01-03 18:53:31 +01:00
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mca
md bio: allow individual slabs in the bio_set 2008-12-29 08:29:23 +01:00
media V4L/DVB (10173): Missing v4l2_prio_close in radio_release 2009-01-03 10:50:38 -02:00
memstick
message [SCSI] fusion: use ARRAY_SIZE 2008-12-29 11:24:17 -06:00
mfd
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
mmc Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
mtd Merge branch 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6 2009-01-02 15:57:26 -08:00
net hso maintainers update patch 2009-01-02 10:19:43 -08:00
nubus
of of/gpio: Implement of_gpio_count() 2008-12-21 14:21:14 +11:00
oprofile shrink struct dentry 2008-12-31 18:07:38 -05:00
parisc Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
parport parport_serial: fix array overflow 2008-12-01 19:55:24 -08:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu 2009-01-03 12:03:52 -08:00
pcmcia Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:04:45 +00:00
pnp percpu: fix percpu accessors to potentially !cpu_possible() cpus: pnpbios 2009-01-01 10:12:14 +10:30
power
ps3
rapidio rapidio: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:41 +11:00
regulator
rtc Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
s390 [PATCH] improve idle cputime accounting 2008-12-31 15:11:48 +01:00
sbus Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
scsi remove ide-scsi 2009-01-02 16:12:51 +01:00
serial serial_8250: support for Sealevel Systems Model 7803 COMM+8 2009-01-02 10:19:44 -08:00
sh sh: maple: Do not pass SLAB_POISON to kmem_cache_create() 2008-12-16 16:40:32 +09:00
sn
spi Merge git://git.marvell.com/orion into devel 2008-12-13 09:12:51 +00:00
ssb
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
tc
telephony
thermal
uio
usb Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb 2009-01-02 10:31:04 -08:00
uwb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream 2009-01-02 13:17:13 +00:00
video Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
virtio virtio: add PCI device release() function 2008-12-30 09:26:10 +10:30
w1 w1: fix slave selection on big-endian systems 2008-12-23 15:58:21 -08:00
watchdog [WATCHDOG] Add support for the WM8350 watchdog 2008-12-31 16:12:54 +00:00
xen Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
zorro
Kconfig
Makefile