| 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) { |