kernel_optimize_test/drivers/ata
Dan Williams b202445925 [SCSI] libsas, libata: fix start of life for a sas ata_port
This changes the ordering of initialization and probing events from:
  1/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
  2/ allocate ata_port and schedule port probe in DISCE_PROBE
...to:
  1/ allocate ata_port in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
  2/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
  3/ schedule port probe in DISCE_PROBE

This ordering prevents PHYE_SIGNAL_LOSS_EVENTS from sneaking in to
destrory ata devices before they have been fully initialized:

  BUG: unable to handle kernel paging request at 0000000000003b10
  IP: [<ffffffffa0053d7e>] sas_ata_end_eh+0x12/0x5e [libsas]
  ...
  [<ffffffffa004d1af>] sas_unregister_common_dev+0x78/0xc9 [libsas]
  [<ffffffffa004d4d4>] sas_unregister_dev+0x4f/0xad [libsas]
  [<ffffffffa004d5b1>] sas_unregister_domain_devices+0x7f/0xbf [libsas]
  [<ffffffffa004c487>] sas_deform_port+0x61/0x1b8 [libsas]
  [<ffffffffa004bed0>] sas_phye_loss_of_signal+0x29/0x2b [libsas]

...and kills the awkward "sata domain_device briefly existing in the
domain without an ata_port" state.

Reported-by: Michal Kosciowski <michal.kosciowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-04-23 12:11:47 +01:00
..
acard-ahci.c
ahci_platform.c ahci_platform: add STRICT_AHCI platform type 2012-03-13 16:36:18 -04:00
ahci.c ahci: move AHCI_HFLAGS() macro to ahci.h 2012-03-13 16:35:47 -04:00
ahci.h ahci: move AHCI_HFLAGS() macro to ahci.h 2012-03-13 16:35:47 -04:00
ata_generic.c
ata_piix.c ata_piix: IDE-mode SATA patch for Intel DH89xxCC DeviceIDs 2012-04-12 15:57:07 -04:00
Kconfig pata_of_platform: remove direct dependency on OF_IRQ 2012-01-08 19:14:58 -05:00
libahci.c ahci: add AHCI_HFLAG_DELAY_ENGINE host flag 2012-03-13 16:35:37 -04:00
libata-acpi.c
libata-core.c libata: make ata_print_id atomic 2012-04-12 15:57:51 -04:00
libata-eh.c [SCSI] libsas: execute transport link resets with libata-eh via host workqueue 2012-02-19 14:13:51 -06:00
libata-pmp.c
libata-scsi.c [SCSI] libsas, libata: fix start of life for a sas ata_port 2012-04-23 12:11:47 +01:00
libata-sff.c ata: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:16 +08:00
libata-transport.c libata: forbid port runtime pm by default, fixing regression 2012-04-18 14:33:25 -04:00
libata-transport.h
libata.h libata: make ata_print_id atomic 2012-04-12 15:57:51 -04:00
Makefile
pata_acpi.c
pata_ali.c
pata_amd.c
pata_arasan_cf.c ata/pata_arasan_cf: Add Hibernation support 2012-03-13 12:43:13 -04:00
pata_artop.c
pata_at32.c
pata_at91.c pata/at91: use newly introduced SMC accessors 2012-02-13 18:31:37 +01:00
pata_atiixp.c
pata_atp867x.c
pata_bf54x.c [libata] pata_bf54x: Support sg list in bmdma transfer. 2012-01-17 20:49:28 -05:00
pata_cmd64x.c pata_cmd64x: implement sff_irq_check() method 2012-03-13 16:43:11 -04:00
pata_cmd640.c
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c pata_cs5536: forward port changes from cs5536 2012-01-08 19:14:58 -05:00
pata_cypress.c
pata_efar.c
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_imx.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_isapnp.c
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_jmicron.c
pata_legacy.c pata_legacy: correctly mask recovery field for HT6560B 2012-03-13 12:43:13 -04:00
pata_macio.c
pata_marvell.c
pata_mpc52xx.c drivers/ata/pata_mpc52xx.c: clean up error handling code 2012-03-13 16:41:08 -04:00
pata_mpiix.c
pata_netcell.c
pata_ninja32.c
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
pata_of_platform.c pata_of_platform: remove direct dependency on OF_IRQ 2012-01-08 19:14:58 -05:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_pcmcia.c
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_piccolo.c
pata_platform.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_pxa.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_radisys.c
pata_rb532_cf.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_rdc.c
pata_rz1000.c
pata_samsung_cf.c
pata_sc1200.c
pata_scc.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/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
sata_fsl.c sata_fsl: add support for interrupt coalsecing feature 2012-03-13 12:43:13 -04:00
sata_inic162x.c
sata_mv.c sata_mv: silence an uninitialized variable warning 2012-04-12 15:57:22 -04:00
sata_nv.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sata_promise.c
sata_promise.h
sata_qstor.c
sata_sil.c
sata_sil24.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c
sata_vsc.c
sis.h