/* initialize the headers & frame */
        skb = f->skb;
-       h = aoe_hdr(skb);
+       h = (struct aoe_hdr *) skb_mac_header(skb);
        ah = (struct aoe_atahdr *) (h+1);
        skb_put(skb, sizeof *h + sizeof *ah);
        memset(h, 0, skb->len);
                skb->dev = ifp;
                if (sl_tail == NULL)
                        sl_tail = skb;
-               h = aoe_hdr(skb);
+               h = (struct aoe_hdr *) skb_mac_header(skb);
                memset(h, 0, sizeof *h + sizeof *ch);
 
                memset(h->dst, 0xff, sizeof h->dst);
        aoechr_error(buf);
 
        skb = f->skb;
-       h = aoe_hdr(skb);
+       h = (struct aoe_hdr *) skb_mac_header(skb);
        ah = (struct aoe_atahdr *) (h+1);
        f->tag = n;
        h->tag = cpu_to_be32(n);
        char ebuf[128];
        u16 aoemajor;
 
-       hin = aoe_hdr(skb);
+       hin = (struct aoe_hdr *) skb_mac_header(skb);
        aoemajor = be16_to_cpu(get_unaligned(&hin->major));
        d = aoedev_by_aoeaddr(aoemajor, hin->minor);
        if (d == NULL) {
        calc_rttavg(d, tsince(f->tag));
 
        ahin = (struct aoe_atahdr *) (hin+1);
-       hout = aoe_hdr(f->skb);
+       hout = (struct aoe_hdr *) skb_mac_header(f->skb);
        ahout = (struct aoe_atahdr *) (hout+1);
        buf = f->buf;
 
 
        /* initialize the headers & frame */
        skb = f->skb;
-       h = aoe_hdr(skb);
+       h = (struct aoe_hdr *) skb_mac_header(skb);
        ah = (struct aoe_atahdr *) (h+1);
        skb_put(skb, sizeof *h + sizeof *ah);
        memset(h, 0, skb->len);
        enum { MAXFRAMES = 16 };
        u16 n;
 
-       h = aoe_hdr(skb);
+       h = (struct aoe_hdr *) skb_mac_header(skb);
        ch = (struct aoe_cfghdr *) (h+1);
 
        /*