Commit cf9a590a authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik

libata: add no penalty retry request for EH device handling routines

Let -EAGAIN from EH device handling routines trigger EH retry without
consuming its tries count.  This will be used to implement link SPD
horkage which requires hardreset to adjust SPD without affecting other
EH decisions.  As it bypasses the forward progress guarantee provided
by the tries count, the requester is responsible for ensuring forward
progress.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent c2c7a89c
...@@ -3035,6 +3035,10 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err) ...@@ -3035,6 +3035,10 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err)
{ {
struct ata_eh_context *ehc = &dev->link->eh_context; struct ata_eh_context *ehc = &dev->link->eh_context;
/* -EAGAIN from EH routine indicates retry without prejudice.
* The requester is responsible for ensuring forward progress.
*/
if (err != -EAGAIN)
ehc->tries[dev->devno]--; ehc->tries[dev->devno]--;
switch (err) { switch (err) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment