aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_ata.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2012-01-11 15:08:36 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-02-29 16:23:24 -0500
commitd230ce691c7712c4f56ba3378d6d2f44628a49f1 (patch)
tree5d8e334e322e26e807d5c186c9aa349c905c0c9d /drivers/scsi/libsas/sas_ata.c
parent8abda4d28a55ecb91e39ceb5e3ee264c5a3cd1af (diff)
[SCSI] libsas: fix mixed topology recovery
If we have a domain with sas and sata devices there may still be sas recovery actions to take after peeling off the commands to send to libata. Reported-by: Andrzej Jakowski <andrzej.jakowski@intel.com> 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.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 26a943eb153a..40edf520d69a 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -699,10 +699,9 @@ void sas_ata_strategy_handler(struct Scsi_Host *shost)
699 sas_enable_revalidation(sas_ha); 699 sas_enable_revalidation(sas_ha);
700} 700}
701 701
702int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q, 702void sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
703 struct list_head *done_q) 703 struct list_head *done_q)
704{ 704{
705 int rtn = 0;
706 struct scsi_cmnd *cmd, *n; 705 struct scsi_cmnd *cmd, *n;
707 struct ata_port *ap; 706 struct ata_port *ap;
708 707
@@ -719,7 +718,6 @@ int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
719 if (ap && ap != ddev->sata_dev.ap) 718 if (ap && ap != ddev->sata_dev.ap)
720 continue; 719 continue;
721 ap = ddev->sata_dev.ap; 720 ap = ddev->sata_dev.ap;
722 rtn = 1;
723 list_move(&cmd->eh_entry, &sata_q); 721 list_move(&cmd->eh_entry, &sata_q);
724 } 722 }
725 723
@@ -741,8 +739,6 @@ int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
741 list_del_init(sata_q.next); 739 list_del_init(sata_q.next);
742 } 740 }
743 } while (ap); 741 } while (ap);
744
745 return rtn;
746} 742}
747 743
748void sas_ata_schedule_reset(struct domain_device *dev) 744void sas_ata_schedule_reset(struct domain_device *dev)