tmp_suning_uos_patched/drivers/ata
Gwendal Grignou d85fc67dd1 libata: transport: Remove circular dependency at free time
Without this patch, failed probe would not free resources like irq.

ata port tdev object currently hold a reference to the ata port
object.  Therefore the ata port object release function will not get
called until the ata_tport_release is called. But that would never
happen, releasing the last reference of ata port dev is done by
scsi_host_release, which is called by ata_host_release when the ata
port object is released.

The ata device objects actually do not need to explicitly hold a
reference to their real counterpart, given the transport objects are
the children of these objects and device_add() is call for each child.
We know the parent will not be deleted until we call the child's
device_del().

Reported-by: Matthew Whitehead <tedheadster@gmail.com>
Tested-by: Matthew Whitehead <tedheadster@gmail.com>
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
2017-03-06 15:24:48 -05:00
..
acard-ahci.c
ahci_brcm.c
ahci_ceva.c
ahci_da850.c sata: ahci-da850: un-hardcode the MPY bits 2017-01-31 20:41:52 +05:30
ahci_imx.c ahci: imx: fix building without hwmon or thermal 2017-01-15 18:51:12 -05:00
ahci_mvebu.c
ahci_octeon.c
ahci_platform.c
ahci_qoriq.c ahci: qoriq: added ls2088a platforms support 2017-01-20 08:31:14 -05:00
ahci_seattle.c
ahci_st.c
ahci_sunxi.c
ahci_tegra.c
ahci_xgene.c ata: ahci_xgene: free structure returned by acpi_get_object_info() 2017-01-06 11:39:14 -05:00
ahci.c
ahci.h sata: ahci: export ahci_do_hardreset() locally 2017-01-31 17:48:21 +05:30
ata_generic.c
ata_piix.c
Kconfig ahci: imx: fix building without hwmon or thermal 2017-01-15 18:51:12 -05:00
libahci_platform.c
libahci.c sata: ahci: export ahci_do_hardreset() locally 2017-01-31 17:48:21 +05:30
libata-acpi.c
libata-core.c Merge branch 'for-4.10-fixes' into for-4.11 2017-01-09 07:38:25 -05:00
libata-eh.c scripts/spelling.txt: add "followings" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
libata-pmp.c
libata-scsi.c scsi: merge __scsi_execute into scsi_execute 2017-02-23 16:57:19 -05:00
libata-sff.c libata-sff: Don't scan disabled ports when checking for legacy mode. 2017-01-23 14:35:17 -05:00
libata-trace.c
libata-transport.c libata: transport: Remove circular dependency at free time 2017-03-06 15:24:48 -05:00
libata-transport.h
libata-zpodd.c
libata.h Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
Makefile ata: add Atari Falcon PATA controller driver 2017-01-10 11:11:18 -05:00
pata_acpi.c
pata_ali.c
pata_amd.c
pata_arasan_cf.c
pata_artop.c
pata_at32.c
pata_at91.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_atiixp.c pata_atiixp: Don't use unconnected secondary port on SB600/SB700 2017-01-23 14:38:30 -05:00
pata_atp867x.c
pata_bf54x.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_ep93xx.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_falcon.c Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_imx.c
pata_isapnp.c
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_jmicron.c
pata_legacy.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_macio.c
pata_marvell.c
pata_mpc52xx.c
pata_mpiix.c
pata_netcell.c
pata_ninja32.c
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c pata_octeon_cf: remove unused local variables from octeon_cf_set_piomode() 2017-01-23 14:28:51 -05:00
pata_of_platform.c ata: pata_of_platform: using of_property_read_u32() helper 2017-01-24 11:15:01 -05:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
pata_pcmcia.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_piccolo.c
pata_platform.c
pata_pxa.c
pata_radisys.c
pata_rb532_cf.c
pata_rdc.c
pata_rz1000.c
pata_samsung_cf.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_sc1200.c
pata_sch.c
pata_serverworks.c
pata_sil680.c
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c
pdc_adma.c
sata_dwc_460ex.c
sata_fsl.c
sata_highbank.c
sata_inic162x.c
sata_mv.c ata: sata_mv: Convert to devm_ioremap_resource() 2017-01-09 07:41:27 -05:00
sata_nv.c
sata_promise.c
sata_promise.h
sata_qstor.c
sata_rcar.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
sata_sil.c
sata_sil24.c
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c
sata_vsc.c
sis.h