linux-stable/drivers
Guennadi Liakhovetski 438d8908b3 gpiolib: better rmmod infrastructure
As long as one or more GPIOs on a gpio chip are used its driver should not be
unloaded.  The existing mechanism (gpiochip_remove failure) doesn't address
that, since rmmod can no longer be made to fail by having the cleanup code
report errors.  Module usecounts are the solution.

Assuming standard "initialize struct to zero" policies, this change won't
affect SOC platform drivers.  However, drivers for external chips (on I2C and
SPI busses) should be updated if they can be built as modules.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
[ gpio_ensure_requested() needs to update module usecounts too ]
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-28 08:58:34 -07:00
..
acorn/char
acpi drivers/acpi/thermal.c: fix build with CONFIG_DMI=n 2008-04-28 08:58:30 -07:00
amba
ata pata_bf54x: decrease count first. 2008-04-25 01:26:28 -04:00
atm
auxdisplay
base bus_remove_device: be more careful about incomplete initialization 2008-04-22 17:40:36 -07:00
block return pfn from direct_access, for XIP 2008-04-28 08:58:23 -07:00
bluetooth
cdrom cdrom: use kmalloced buffers instead of buffers on stack 2008-04-21 09:50:08 +02:00
char VT notifier extension for accessibility 2008-04-28 08:58:32 -07:00
clocksource
connector
cpufreq
cpuidle
crypto [CRYPTO] padlock-aes: Use generic setkey function 2008-04-21 10:19:34 +08:00
dca
dio
dma DMA engine: typo fixes 2008-04-21 22:38:45 +00:00
edac
eisa
firewire
firmware Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6 2008-04-21 15:49:58 -07:00
gpio gpiolib: better rmmod infrastructure 2008-04-28 08:58:34 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-04-25 12:38:14 -07:00
hwmon
i2c i2c: Fix platform driver hotplug/coldplug 2008-04-22 22:16:49 +02:00
ide ide-tape: remove tape->merge_stage 2008-04-27 15:38:34 +02:00
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-04-25 12:24:06 -07:00
infiniband RDMA/nes: Remove volatile qualifier from struct nes_hw_cq.cq_vbase 2008-04-23 11:55:45 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-04-27 10:10:37 -07:00
isdn isdn: rename CONFIG_AVMB1_COMPAT to not look like a Kconfig variable 2008-04-28 08:58:34 -07:00
leds leds: Add default-on trigger 2008-04-25 00:06:52 +01:00
lguest
macintosh mac-hid: fix build after lockdep annotation 2008-04-25 18:57:09 -07:00
mca
md dm: remove md argument from specific_minor 2008-04-25 13:27:02 +01:00
media mm: remove nopage 2008-04-28 08:58:18 -07:00
memstick memstick: convert struct class_device to struct device 2008-04-19 19:10:29 -07:00
message SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00
mfd mfd: use shorter set_current_state() 2008-04-28 08:58:32 -07:00
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-04-27 11:25:00 -07:00
mmc
mtd [MTD] m25p80: Add Support for ATMEL AT25DF641 64-Megabit SPI Flash 2008-04-25 09:14:23 +01:00
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2008-04-27 10:10:14 -07:00
nubus
of [POWERPC] drivers/of/of_i2c.c: Add MODULE_LICENSE 2008-04-24 20:58:01 +10:00
oprofile oprofile: change cpu_buffer from array to per_cpu variable 2008-04-28 08:58:31 -07:00
parisc PCI: remove parisc consumer of the pci global_list 2008-04-20 21:47:01 -07:00
parport
pci intel-iommu.c: dma ops fix 2008-04-24 23:15:43 +02:00
pcmcia [ARM] pxa: fix 0e623941be 2008-04-21 12:52:03 +01:00
pnp pnpacpi: fix potential corruption on "pnpacpi: exceeded the max number of IRQ resources 2" 2008-04-23 12:22:13 -07:00
power
ps3
rapidio
rtc rtc: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:17 -07:00
s390 return pfn from direct_access, for XIP 2008-04-28 08:58:23 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-04-27 11:25:00 -07:00
serial atmel_serial: remove duplicated macro definition 2008-04-28 08:58:30 -07:00
sh
sn
spi spi: spi_imx updates 2008-04-28 08:58:31 -07:00
ssb ssb: Fix all-ones boardflags 2008-04-23 21:25:35 -04:00
tc
telephony
thermal
uio
usb usb: don't update devnum for wusb devices 2008-04-24 21:16:59 -07:00
video mm: remove nopage 2008-04-28 08:58:18 -07:00
virtio
w1
watchdog
xen xen: add balloon driver 2008-04-24 23:57:33 +02:00
zorro
Kconfig xen: add balloon driver 2008-04-24 23:57:33 +02:00
Makefile