blob: e795c2c55b8004f96ca2b970c7f7cc319afc03b0 [file] [log] [blame]
From stable-bounces@linux.kernel.org Sat Sep 16 21:07:40 2006
Message-ID: <450CC9A3.7030901@gentoo.org>
Date: Sun, 17 Sep 2006 00:05:55 -0400
From: Tejun Heo <htejun@gmail.com>
To: stable@kernel.org
Cc: htejun@gmail.com
Subject: ahci: do not fail softreset if PHY reports no device
From: Tejun Heo <htejun@gmail.com>
All softreset methods are responsible for detecting device presence
and succeed softreset in such cases. AHCI didn't use to check for
device presence before proceeding with softreset and this caused
unnecessary reset retrials during probing. This patch adds presence
detection to AHCI softreset.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Cc: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/ahci.c | 6 ++++++
1 file changed, 6 insertions(+)
--- linux-2.6.17.13.orig/drivers/scsi/ahci.c
+++ linux-2.6.17.13/drivers/scsi/ahci.c
@@ -548,6 +548,12 @@ static int ahci_softreset(struct ata_por
DPRINTK("ENTER\n");
+ if (!sata_dev_present(ap)) {
+ DPRINTK("PHY reports no device\n");
+ *class = ATA_DEV_NONE;
+ return 0;
+ }
+
/* prepare for SRST (AHCI-1.1 10.4.1) */
rc = ahci_stop_engine(ap);
if (rc) {