remarkable-linux/drivers
Neil Horman 5d469ec0f4 [PATCH] Correct misc_register return code handling in several drivers
Clean up several code points in which the return code from misc_register is
not handled properly.

Several modules failed to deregister various hooks when misc_register fails,
and this patch cleans them up.  Also there are a few modules that legitimately
don't care about the failure status of misc register.  These drivers however
unilaterally call misc_deregister on module unload.

Since misc_register doesn't initialize the list_head in the init_routine if it
fails, the deregister operation is at risk for oopsing when list_del is
called.  The initial solution was to manually init the list in the miscdev
structure in each of those modules, but the consensus in this thread was to
consolodate and do that universally inside misc_register.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Kylene Jo Hall <kjhall@us.ibm.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-07 08:39:35 -08:00
..
acorn IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
acpi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 17:01:28 +00:00
amba
ata Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-06 15:01:18 +00:00
atm [PATCH] slab: remove SLAB_DMA 2006-12-07 08:39:24 -08:00
base [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
block [PATCH] paride: return proper error code 2006-12-07 08:39:34 -08:00
bluetooth [PATCH] lockdep: annotate bcsp driver 2006-12-07 08:39:34 -08:00
cdrom [PATCH] drivers/cdrom/*: trivial vsnprintf() conversion 2006-12-07 08:39:35 -08:00
char [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
clocksource [PATCH] clocksource: acpi_pm: add another greylist chipset 2006-10-21 13:35:05 -07:00
connector WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
cpufreq WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
crypto
dio
dma [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
edac [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
eisa [PATCH] EISA: handle sysfs errors 2006-10-11 11:14:25 -07:00
fc4 [SCSI] fc4: Conversion to struct scsi_cmnd in fc4 2006-10-25 15:12:45 -07:00
firmware [PATCH] dell_rbu: fix error check 2006-11-16 11:43:38 -08:00
hwmon [PATCH] severing fs.h, radix-tree.h -> sched.h 2006-12-04 02:00:24 -05:00
i2c [PATCH] ... and more work_struct-induced breakage (mips) 2006-12-06 14:51:14 -08:00
ide [PATCH] lockdep: fix ide/proc interaction 2006-12-07 08:39:32 -08:00
ieee1394 [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
infiniband [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
input [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
isdn [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
leds [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
macintosh [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
mca [PATCH] drivers/mca: handle sysfs errors 2006-10-11 11:14:25 -07:00
md [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
media [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
message [PATCH] I2O: more error checking 2006-12-07 08:39:31 -08:00
mfd [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
misc [PATCH] tifm: fix NULL ptr and style 2006-12-07 08:39:33 -08:00
mmc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 14:37:56 +00:00
mtd [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
net [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
nubus
oprofile WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
parisc Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
parport [PATCH] parport_pc: Add support for OX16PCI952 parallel port 2006-12-07 08:39:34 -08:00
pci [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
pcmcia [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
pnp [PATCH] PNP: handle sysfs errors 2006-12-07 08:39:31 -08:00
ps3 [POWERPC] ps3: multiplatform build fixes 2006-12-04 20:41:16 +11:00
rapidio Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
rtc [PATCH] RTC: handle sysfs errors 2006-12-07 08:39:31 -08:00
s390 [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
sbus [SPARC]: Fix bus_id[] string overflow. 2006-10-27 01:03:31 -07:00
scsi [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
serial [PATCH] Exar quad port serial 2006-12-07 08:39:35 -08:00
sh
sn [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
spi [PATCH] spi: set kset of master class dev explicitly 2006-12-07 08:39:33 -08:00
tc [MIPS] Fix DECserial build error by IRQ hander change 2006-10-08 02:38:28 +01:00
telephony [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation 2006-12-04 20:12:02 -05:00
usb [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
video WorkQueue: Fix up arch-specific work items where possible 2006-12-05 19:36:26 +00:00
w1 [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
zorro
Kconfig [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
Makefile [POWERPC] ps3: Missed renames of CONFIG_PS3 to CONFIG_PPC_PS3 2006-12-04 20:41:14 +11:00