diff options
Diffstat (limited to 'drivers/ata/libata-eh.c')
-rw-r--r-- | drivers/ata/libata-eh.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 21687bbd9a70..d8c4a45dcf26 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -2276,6 +2276,11 @@ int ata_eh_reset(struct ata_link *link, int classify, | |||
2276 | return rc; | 2276 | return rc; |
2277 | 2277 | ||
2278 | fail: | 2278 | fail: |
2279 | /* if SCR isn't accessible on a fan-out port, PMP needs to be reset */ | ||
2280 | if (!ata_is_host_link(link) && | ||
2281 | sata_scr_read(link, SCR_STATUS, &sstatus)) | ||
2282 | rc = -ERESTART; | ||
2283 | |||
2279 | if (rc == -ERESTART || try >= max_tries) | 2284 | if (rc == -ERESTART || try >= max_tries) |
2280 | goto out; | 2285 | goto out; |
2281 | 2286 | ||