linux/drivers/ide
Bartlomiej Zolnierkiewicz 8fed436841 ide: fix refcounting in device drivers
During host driver module removal del_gendisk() results in a final
put on drive->gendev and freeing the drive by drive_release_dev().

Convert device drivers from using struct kref to use struct device
so device driver's object holds reference on ->gendev and prevents
drive from prematurely going away.

Also fix ->remove methods to not erroneously drop reference on a
host driver by using only put_device() instead of ide*_put().

Reported-by: Stanislaw Gruszka <stf_xl@wp.pl>
Tested-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2009-02-25 20:28:24 +01:00
..
aec62xx.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
ali14xx.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
alim15x3.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
amd74xx.c amd74xx: device/vendor confusion 2009-02-25 20:28:22 +01:00
atiixp.c atiixp: fix missing parentheses 2009-02-25 20:28:22 +01:00
au1xxx-ide.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
buddha.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cmd64x.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
cmd640.c cmd640: use ide_get_pair_dev() helper 2009-01-06 17:20:55 +01:00
cs5520.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
cs5530.c drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test 2008-12-22 23:05:06 +01:00
cs5535.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cs5536.c ide: add CS5536 host driver (v3) 2009-02-02 20:12:23 +01:00
cy82c693.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
delkin_cb.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
dtc2278.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
falconide.c ide: fix Falcon IDE breakage 2009-01-19 13:46:56 +01:00
gayle.c gayle: set IDE_HFLAG_SERIALIZE explictly 2008-12-29 20:27:33 +01:00
hpt366.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
ht6560b.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
icside.c icside: fix PCB version 6 support (v2) 2009-02-02 20:12:23 +01:00
ide_arm.c [ARM] clps7500: remove support 2008-11-27 12:38:11 +00:00
ide_platform.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ide-4drives.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ide-acpi.c ide: struct device - replace bus_id with dev_name(), dev_set_name() 2009-02-02 20:12:21 +01:00
ide-atapi.c ide-cd: convert to ide-atapi facilities 2009-01-06 17:20:58 +01:00
ide-cd_ioctl.c ide: remove IDE_AFLAG_NO_DOORLOCKING 2008-10-17 18:09:11 +02:00
ide-cd_verbose.c
ide-cd.c ide: fix refcounting in device drivers 2009-02-25 20:28:24 +01:00
ide-cd.h ide: fix refcounting in device drivers 2009-02-25 20:28:24 +01:00
ide-cs.c pcmcia: add another pata/ide ID 2008-11-09 21:35:36 +01:00
ide-disk_ioctl.c [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-disk_proc.c ide-disk: factor out generic disk handling code to ide-gd.c 2008-10-17 18:09:12 +02:00
ide-disk.c ide: can't use SSD/non-rotational queue flag for all CFA devices 2009-01-14 19:19:03 +01:00
ide-disk.h [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-dma-sff.c ide-dma-sff: factor out ide_dma_sff_write_status() 2009-01-06 17:21:02 +01:00
ide-dma.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
ide-floppy_ioctl.c ide-floppy: allocate only toplevel packet commands 2009-01-02 16:12:51 +01:00
ide-floppy_proc.c ide: prepare for merging ide-gd-floppy.c with ide-gd.c 2008-10-17 18:09:13 +02:00
ide-floppy.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
ide-floppy.h [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-gd.c ide: fix refcounting in device drivers 2009-02-25 20:28:24 +01:00
ide-gd.h ide: fix refcounting in device drivers 2009-02-25 20:28:24 +01:00
ide-generic.c ide-generic: remove no longer needed ide_probe_legacy() 2008-10-13 21:39:42 +02:00
ide-h8300.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
ide-io.c ide-cd: fix DMA for non bio-backed requests 2009-02-02 20:12:21 +01:00
ide-ioctls.c ide: remove the last ide-scsi remnants 2009-01-02 16:12:54 +01:00
ide-iops.c ide: fix accidental LOCKDEP breakage caused by local_irq_set() removal 2009-01-14 19:19:02 +01:00
ide-legacy.c ide: move legacy ISA/VLB ports handling to ide-legacy.c (v2) 2008-12-29 20:27:37 +01:00
ide-lib.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
ide-park.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
ide-pci-generic.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
ide-pio-blacklist.c ide: move PIO blacklist to ide-pio-blacklist.c 2008-07-16 20:33:39 +02:00
ide-pm.c ide: fix suspend regression 2009-01-14 19:19:04 +01:00
ide-pnp.c ide: add ide_host_add() helper 2008-07-23 19:55:57 +02:00
ide-probe.c IDE: Unregister and disable devices if initialization fails. 2009-02-02 20:12:22 +01:00
ide-proc.c ide: add port and host iterators 2009-01-06 17:20:56 +01:00
ide-scan-pci.c
ide-sysfs.c ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
ide-tape.c ide: fix refcounting in device drivers 2009-02-25 20:28:24 +01:00
ide-taskfile.c ide: remove ide_driver_t typedef 2009-01-06 17:20:53 +01:00
ide-timings.c ide: include <linux/hdreg.h> only when needed 2008-10-10 22:39:27 +02:00
ide.c ide: ide.c 'clear' fix, update "ide=nodma" documentation 2009-02-25 20:28:21 +01:00
it821x.c it821x: remove dead URL 2009-02-25 20:28:22 +01:00
it8172.c Resurrect IT8172 IDE controller driver 2009-01-06 17:21:01 +01:00
it8213.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
jmicron.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
Kconfig ide: ide.c 'clear' fix, update "ide=nodma" documentation 2009-02-25 20:28:21 +01:00
macide.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
Makefile ide: add CS5536 host driver (v3) 2009-02-02 20:12:23 +01:00
ns87415.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
opti621.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
palm_bk3710.c drivers/ide/palm_bk3710.c buildfix 2009-01-19 13:46:57 +01:00
pdc202xx_new.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
pdc202xx_old.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
piix.c piix: sync ich_laptop[] with ata_piix.c 2009-01-06 17:21:01 +01:00
pmac.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
q40ide.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
qd65xx.c Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
qd65xx.h Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
rapide.c arm ide breakage 2008-10-26 09:35:05 -07:00
rz1000.c rz1000: apply chipset quirks early (v2) 2008-12-29 20:27:33 +01:00
sc1200.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
scc_pata.c scc_pata: make use of scc_dma_sff_read_status() 2009-01-06 17:21:02 +01:00
serverworks.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
setup-pci.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
sgiioc4.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
siimage.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
sis5513.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
sl82c105.c sl82c105: remove dead code 2009-01-14 19:19:03 +01:00
slc90e66.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
tc86c001.c ide: move read_sff_dma_status() method to 'struct ide_dma_ops' 2009-01-06 17:21:02 +01:00
triflex.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
trm290.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
tx4938ide.c tx4938ide: Fix build error due to read_sff_dma_status moving 2009-01-14 19:19:04 +01:00
tx4939ide.c tx4939ide: typo fix and minor cleanup 2009-02-02 20:12:23 +01:00
umc8672.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
via82cxxx.c ide: Force VIA IDE legacy interrupts for AmigaOne boards 2009-02-02 20:12:22 +01:00