aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/aoe/aoecmd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 63c456082d81..621fdbbc4cd4 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -475,7 +475,7 @@ void
475aoecmd_ata_rsp(struct sk_buff *skb) 475aoecmd_ata_rsp(struct sk_buff *skb)
476{ 476{
477 struct aoedev *d; 477 struct aoedev *d;
478 struct aoe_hdr *hin; 478 struct aoe_hdr *hin, *hout;
479 struct aoe_atahdr *ahin, *ahout; 479 struct aoe_atahdr *ahin, *ahout;
480 struct frame *f; 480 struct frame *f;
481 struct buf *buf; 481 struct buf *buf;
@@ -515,7 +515,8 @@ aoecmd_ata_rsp(struct sk_buff *skb)
515 calc_rttavg(d, tsince(f->tag)); 515 calc_rttavg(d, tsince(f->tag));
516 516
517 ahin = (struct aoe_atahdr *) (hin+1); 517 ahin = (struct aoe_atahdr *) (hin+1);
518 ahout = (struct aoe_atahdr *) (f->skb->mac.raw + sizeof(struct aoe_hdr)); 518 hout = (struct aoe_hdr *) f->skb->mac.raw;
519 ahout = (struct aoe_atahdr *) (hout+1);
519 buf = f->buf; 520 buf = f->buf;
520 521
521 if (ahout->cmdstat == WIN_IDENTIFY) 522 if (ahout->cmdstat == WIN_IDENTIFY)
@@ -552,6 +553,9 @@ aoecmd_ata_rsp(struct sk_buff *skb)
552 skb_fill_page_desc(f->skb, 0, 553 skb_fill_page_desc(f->skb, 0,
553 virt_to_page(f->bufaddr), 554 virt_to_page(f->bufaddr),
554 offset_in_page(f->bufaddr), n); 555 offset_in_page(f->bufaddr), n);
556 f->tag = newtag(d);
557 hout->tag = cpu_to_be32(f->tag);
558 skb->dev = d->ifp;
555 skb_get(f->skb); 559 skb_get(f->skb);
556 f->skb->next = NULL; 560 f->skb->next = NULL;
557 spin_unlock_irqrestore(&d->lock, flags); 561 spin_unlock_irqrestore(&d->lock, flags);