aoe: jumbo frame support 2 of 2
authorEd L. Cashin <ecashin@coraid.com>
Wed, 20 Sep 2006 18:36:49 +0000 (14:36 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 18 Oct 2006 19:53:50 +0000 (12:53 -0700)
Add support for jumbo ethernet frames.
(This patch follows patch 5.)

Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/block/aoe/aoecmd.c

index 63c4560..621fdbb 100644 (file)
@@ -475,7 +475,7 @@ void
 aoecmd_ata_rsp(struct sk_buff *skb)
 {
        struct aoedev *d;
-       struct aoe_hdr *hin;
+       struct aoe_hdr *hin, *hout;
        struct aoe_atahdr *ahin, *ahout;
        struct frame *f;
        struct buf *buf;
@@ -515,7 +515,8 @@ aoecmd_ata_rsp(struct sk_buff *skb)
        calc_rttavg(d, tsince(f->tag));
 
        ahin = (struct aoe_atahdr *) (hin+1);
-       ahout = (struct aoe_atahdr *) (f->skb->mac.raw + sizeof(struct aoe_hdr));
+       hout = (struct aoe_hdr *) f->skb->mac.raw;
+       ahout = (struct aoe_atahdr *) (hout+1);
        buf = f->buf;
 
        if (ahout->cmdstat == WIN_IDENTIFY)
@@ -552,6 +553,9 @@ aoecmd_ata_rsp(struct sk_buff *skb)
                                        skb_fill_page_desc(f->skb, 0,
                                                virt_to_page(f->bufaddr),
                                                offset_in_page(f->bufaddr), n);
+                               f->tag = newtag(d);
+                               hout->tag = cpu_to_be32(f->tag);
+                               skb->dev = d->ifp;
                                skb_get(f->skb);
                                f->skb->next = NULL;
                                spin_unlock_irqrestore(&d->lock, flags);