aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/aoe/aoecmd.c
diff options
context:
space:
mode:
authorEd L. Cashin <ecashin@coraid.com>2006-02-07 11:37:24 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-24 01:01:57 -0500
commit9d41965b783474dba9fcf3eb02e5eb60540e6ff6 (patch)
tree1780a39793a83087aaa3b2ea9db1ddd653d875d1 /drivers/block/aoe/aoecmd.c
parent5dc401ee74c5d6a24867acd8302c55da9ae4f0ce (diff)
[PATCH] aoe [2/3]: don't request ATA device ID on ATA error
On an ATA error response, take the device down instead of sending another ATA device identify command. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com>
Diffstat (limited to 'drivers/block/aoe/aoecmd.c')
-rw-r--r--drivers/block/aoe/aoecmd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 207aabcd1f4e..39da28d344fe 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -517,6 +517,8 @@ aoecmd_ata_rsp(struct sk_buff *skb)
517 ahout = (struct aoe_atahdr *) (f->data + sizeof(struct aoe_hdr)); 517 ahout = (struct aoe_atahdr *) (f->data + sizeof(struct aoe_hdr));
518 buf = f->buf; 518 buf = f->buf;
519 519
520 if (ahout->cmdstat == WIN_IDENTIFY)
521 d->flags &= ~DEVFL_PAUSE;
520 if (ahin->cmdstat & 0xa9) { /* these bits cleared on success */ 522 if (ahin->cmdstat & 0xa9) { /* these bits cleared on success */
521 printk(KERN_CRIT "aoe: aoecmd_ata_rsp: ata error cmd=%2.2Xh " 523 printk(KERN_CRIT "aoe: aoecmd_ata_rsp: ata error cmd=%2.2Xh "
522 "stat=%2.2Xh from e%ld.%ld\n", 524 "stat=%2.2Xh from e%ld.%ld\n",
@@ -549,7 +551,6 @@ aoecmd_ata_rsp(struct sk_buff *skb)
549 return; 551 return;
550 } 552 }
551 ataid_complete(d, (char *) (ahin+1)); 553 ataid_complete(d, (char *) (ahin+1));
552 d->flags &= ~DEVFL_PAUSE;
553 break; 554 break;
554 default: 555 default:
555 printk(KERN_INFO "aoe: aoecmd_ata_rsp: unrecognized " 556 printk(KERN_INFO "aoe: aoecmd_ata_rsp: unrecognized "