diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-10-22 03:21:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-10-22 03:21:34 -0400 |
commit | 19eddab9d94b5a47f154b6a244c7294a505b946f (patch) | |
tree | e31464f58bef56904b19080f52a5a965b149d5d1 /drivers/ata/libahci.c | |
parent | ee7eafc907db64ef4cbe8a17da3a1089cbe50617 (diff) | |
parent | fa070ee6dc70bcc19737a2406d741b089b3149d5 (diff) |
Merge branch 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata fixes from Tejun Heo:
"The only interesting bit is ata_eh_qc_retry() update which fixes a
problem where a SG_IO command may fail across suspend/resume cycle
without the command actually being at fault.
Other changes are low level driver specific and fairly low impact"
* 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
libahci: fix turning on LEDs in ahci_start_port()
libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures
ahci_platform: use dev_info() instead of printk()
ahci: use dev_info() instead of printk()
pata_isapnp: Don't use invalid I/O ports
Diffstat (limited to 'drivers/ata/libahci.c')
-rw-r--r-- | drivers/ata/libahci.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index acfd0f711069..aaac4fb0d564 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c | |||
@@ -778,8 +778,16 @@ static void ahci_start_port(struct ata_port *ap) | |||
778 | rc = ap->ops->transmit_led_message(ap, | 778 | rc = ap->ops->transmit_led_message(ap, |
779 | emp->led_state, | 779 | emp->led_state, |
780 | 4); | 780 | 4); |
781 | /* | ||
782 | * If busy, give a breather but do not | ||
783 | * release EH ownership by using msleep() | ||
784 | * instead of ata_msleep(). EM Transmit | ||
785 | * bit is busy for the whole host and | ||
786 | * releasing ownership will cause other | ||
787 | * ports to fail the same way. | ||
788 | */ | ||
781 | if (rc == -EBUSY) | 789 | if (rc == -EBUSY) |
782 | ata_msleep(ap, 1); | 790 | msleep(1); |
783 | else | 791 | else |
784 | break; | 792 | break; |
785 | } | 793 | } |