aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_ata.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2012-01-18 23:14:01 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-02-29 16:34:19 -0500
commit92625f9bff3853951cc75f5bc084ee67c1317d2f (patch)
tree9d5d2c89b99cdf73ec3c28703d0d5514e37ec73c /drivers/scsi/libsas/sas_ata.c
parentc666aae6919114d6cff789d79f80cfa85f3a7339 (diff)
[SCSI] libsas: restore scan order
ata devices are always scanned after ssp. Prior to the ata error handling reworks libsas would tend to scan devices in ascending expander phy order. Restore this ordering by deferring ssp discovery to a DISCE_PROBE event, and keep the probe order consistent with the discovery order, not the placement of sata devices. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
-rw-r--r--drivers/scsi/libsas/sas_ata.c29
1 files changed, 0 insertions, 29 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 25008a42412f..a9ec1643ee93 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -683,35 +683,6 @@ static void sas_get_ata_command_set(struct domain_device *dev)
683 dev->sata_dev.command_set = ATAPI_COMMAND_SET; 683 dev->sata_dev.command_set = ATAPI_COMMAND_SET;
684} 684}
685 685
686void sas_probe_sata(struct work_struct *work)
687{
688 struct domain_device *dev, *n;
689 struct sas_discovery_event *ev =
690 container_of(work, struct sas_discovery_event, work);
691 struct asd_sas_port *port = ev->port;
692
693 clear_bit(DISCE_PROBE, &port->disc.pending);
694
695 list_for_each_entry_safe(dev, n, &port->disco_list, disco_list_node) {
696 int err;
697
698 spin_lock_irq(&port->dev_list_lock);
699 list_add_tail(&dev->dev_list_node, &port->dev_list);
700 spin_unlock_irq(&port->dev_list_lock);
701
702 err = sas_rphy_add(dev->rphy);
703
704 if (err) {
705 SAS_DPRINTK("%s: for %s device %16llx returned %d\n",
706 __func__, dev->parent ? "exp-attached" :
707 "direct-attached",
708 SAS_ADDR(dev->sas_addr), err);
709 sas_unregister_dev(port, dev);
710 } else
711 list_del_init(&dev->disco_list_node);
712 }
713}
714
715/** 686/**
716 * sas_discover_sata -- discover an STP/SATA domain device 687 * sas_discover_sata -- discover an STP/SATA domain device
717 * @dev: pointer to struct domain_device of interest 688 * @dev: pointer to struct domain_device of interest