linux/drivers
David Herrmann bf18c7118c Bluetooth: vhci: Free driver_data on file release
This removes the hci-destruct callback and instead frees the private
driver data in the vhci_release file release function. There is no
reason to keep private driver data available if the driver has already
shut down.

After vhci_release is called our module can be unloaded. The only reason
it is kept alive is the hci-core having a module-ref on us because of
our destruct callback. However, this callback only frees
hdev->driver_data. That is, we wait for the hdev-device to get destroyed
to free our internal driver-data. In fact, the hci-core does never touch
hdev->driver_data so it doesn't care if it is NULL. Therefore, we simply
free it when unloading the driver.

Another important fact is that the hdev core does not call any callbacks
other than the destruct-cb after hci_unregister_dev() has been called.
So there is no function of our module that will be called nor does the
hci-core touch hdev->driver_data. Hence, no other code can touch
hdev->driver_data after our cleanup so the destruct callback is
definitely unnecessary here.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2012-02-13 17:01:23 +02:00
..
accessibility
acpi Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
amba Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm 2012-01-08 13:10:57 -08:00
ata Merge branch 'upstream-linus' of git://github.com/jgarzik/libata-dev 2012-01-10 10:19:17 -08:00
atm
auxdisplay
base kdump: add udev events for memory online/offline 2012-01-12 20:13:11 -08:00
bcma bcma: log the id, rev and pkg of the chip found 2012-02-06 14:53:11 -05:00
block virtio: blk: Add freeze, restore handlers to support S4 2012-01-12 15:44:45 +10:30
bluetooth Bluetooth: vhci: Free driver_data on file release 2012-02-13 17:01:23 +02:00
cdrom fs: move code out of buffer.c 2012-01-03 22:54:07 -05:00
char Merge branch 'akpm' (aka "Andrew's patch-bomb, take two") 2012-01-12 20:42:54 -08:00
clk clk: add config option HAVE_CLK_PREPARE into Kconfig 2011-12-28 21:35:06 +08:00
clocksource Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2012-01-06 18:15:25 -08:00
connector
cpufreq Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2012-01-11 18:53:33 -08:00
cpuidle cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2012-01-10 22:01:27 -08:00
dca
devfreq Merge branch 'devfreq-for-next' of git://git.infradead.org/users/kmpark/linux-samsung into pm-devfreq 2011-12-21 09:51:23 +01:00
dio
dma clock management changes for i.MX 2012-01-09 14:44:15 -08:00
edac Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
eisa
firewire
firmware Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
gpio Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl 2012-01-10 10:19:57 -08:00
gpu Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-01-10 11:04:36 -08:00
hid Merge git://git.infradead.org/battery-2.6 2012-01-11 18:53:05 -08:00
hv Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2012-01-09 12:09:47 -08:00
hwmon Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging 2012-01-08 13:39:24 -08:00
hwspinlock
i2c Merge branch 'unicore32' of git://github.com/gxt/linux 2012-01-10 17:37:20 -08:00
ide
idle
ieee802154
infiniband infiniband changes for 3.3 merge window 2012-01-08 14:05:48 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-01-12 12:40:41 -08:00
iommu Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2012-01-10 11:08:21 -08:00
isdn drivers: isdn: Fix dependency for ISDN_PPP 2012-01-10 14:57:20 -08:00
leds leds: convert wm8350 driver to devm_kzalloc() 2012-01-10 16:30:49 -08:00
lguest lguest: Make sure interrupt is allocated ok by lguest_setup_irq 2012-01-12 15:44:47 +10:30
macintosh Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
mca
md Two bugfixes for md. 2012-01-11 18:51:55 -08:00
media Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2012-01-10 11:08:21 -08:00
memstick
message SCSI updates for post 3.2 merge window 2012-01-10 10:36:08 -08:00
mfd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
misc Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc 2012-01-09 12:08:59 -08:00
mmc clock management changes for i.MX 2012-01-09 14:44:15 -08:00
mtd kexec: remove KMSG_DUMP_KEXEC 2012-01-12 20:13:11 -08:00
net rtlwifi: Modify rtl_pci_init to return 0 on success 2012-02-09 14:49:37 -05:00
nfc NFC: Free sk_buff if nfcwilink_send fails 2012-01-24 14:21:56 -05:00
nubus
of of: add include asm/setup.h in drivers/of/fdt.c 2012-01-10 10:29:41 +08:00
oprofile Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 08:02:58 -08:00
parisc Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
parport drivers/parport/parport_pc.c: fix warnings 2012-01-12 20:13:12 -08:00
pci Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
pcmcia pcmcia: pxa: replace IRQ_GPIO() with gpio_to_irq() 2011-12-28 10:14:04 +00:00
pinctrl pinctrl: remove unnecessary max pin number 2012-01-03 09:10:09 +01:00
platform Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-11 19:13:40 -08:00
pnp PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB 2012-01-06 12:11:20 -08:00
power Merge git://git.infradead.org/battery-2.6 2012-01-11 18:53:05 -08:00
pps
ps3
ptp
rapidio
regulator regulator: set constraints.apply_uV to 0 in of_get_fixed_voltage_config 2012-01-06 11:01:09 -08:00
rtc Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-11 19:13:40 -08:00
s390 virtio: harsher barriers for rpmsg. 2012-01-12 15:44:42 +10:30
sbus
scsi Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
sfi
sh SH/R-Mobile updates for 3.3 merge window. 2012-01-11 23:29:20 -08:00
sn
spi Cleanups for the Samsung platforms 2012-01-09 14:30:28 -08:00
ssb ssb: add support for bcm5354 2012-02-06 14:55:36 -05:00
staging Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-01-10 11:04:36 -08:00
target
tc
telephony
thermal
tty SH/R-Mobile updates for 3.3 merge window. 2012-01-11 23:29:20 -08:00
uio Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2012-01-10 10:48:28 -08:00
uwb Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2012-01-09 12:09:47 -08:00
vhost vhost-net: add module alias (v2.1) 2012-01-13 10:12:23 -08:00
video drivers/video/nvidia/nvidia.c: fix warning 2012-01-12 20:13:03 -08:00
virt
virtio virtio: balloon: Add freeze, restore handlers to support S4 2012-01-12 15:44:47 +10:30
vlynq
w1
watchdog Merge git://www.linux-watchdog.org/linux-watchdog 2012-01-10 10:29:23 -08:00
xen Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-01-10 11:04:36 -08:00
zorro misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
Kconfig
Makefile