Commit 459a98ed881802dee55897441bc7f77af614368e
Committed by
David S. Miller
1 parent
4c13eb6657
Exists in
master
and in
4 other branches
[SK_BUFF]: Introduce skb_reset_mac_header(skb)
For the common, open coded 'skb->mac.raw = skb->data' operation, so that we can later turn skb->mac.raw into a offset, reducing the size of struct sk_buff in 64bit land while possibly keeping it as a pointer on 32bit. This one touches just the most simple case, next will handle the slightly more "complex" cases. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 85 changed files with 119 additions and 109 deletions Side-by-side Diff
- arch/um/drivers/net_kern.c
- arch/xtensa/platform-iss/network.c
- drivers/block/aoe/aoecmd.c
- drivers/ieee1394/eth1394.c
- drivers/infiniband/ulp/ipoib/ipoib_cm.c
- drivers/infiniband/ulp/ipoib/ipoib_ib.c
- drivers/isdn/i4l/isdn_net.c
- drivers/isdn/i4l/isdn_ppp.c
- drivers/message/fusion/mptlan.c
- drivers/net/appletalk/cops.c
- drivers/net/appletalk/ltpc.c
- drivers/net/arcnet/arc-rawmode.c
- drivers/net/arcnet/capmode.c
- drivers/net/arcnet/rfc1051.c
- drivers/net/arcnet/rfc1201.c
- drivers/net/bonding/bond_3ad.c
- drivers/net/bonding/bond_alb.c
- drivers/net/cxgb3/cxgb3_offload.c
- drivers/net/cxgb3/sge.c
- drivers/net/irda/ali-ircc.c
- drivers/net/irda/au1k_ir.c
- drivers/net/irda/donauboe.c
- drivers/net/irda/irda-usb.c
- drivers/net/irda/mcs7780.c
- drivers/net/irda/nsc-ircc.c
- drivers/net/irda/pxaficp_ir.c
- drivers/net/irda/sa1100_ir.c
- drivers/net/irda/smsc-ircc2.c
- drivers/net/irda/stir4200.c
- drivers/net/irda/via-ircc.c
- drivers/net/irda/vlsi_ir.c
- drivers/net/irda/w83977af_ir.c
- drivers/net/myri_sbus.c
- drivers/net/ppp_generic.c
- drivers/net/sb1000.c
- drivers/net/tun.c
- drivers/net/wan/cosa.c
- drivers/net/wan/cycx_x25.c
- drivers/net/wan/dlci.c
- drivers/net/wan/farsync.c
- drivers/net/wan/lmc/lmc_main.c
- drivers/net/wan/pc300_drv.c
- drivers/net/wan/pc300_tty.c
- drivers/net/wireless/airo.c
- drivers/net/wireless/hostap/hostap_80211_rx.c
- drivers/net/wireless/hostap/hostap_80211_tx.c
- drivers/net/wireless/hostap/hostap_ap.c
- drivers/net/wireless/hostap/hostap_hw.c
- drivers/net/wireless/hostap/hostap_main.c
- drivers/net/wireless/ipw2200.c
- drivers/net/wireless/orinoco.c
- drivers/net/wireless/prism54/islpci_eth.c
- drivers/net/wireless/strip.c
- drivers/s390/net/ctcmain.c
- drivers/s390/net/netiucv.c
- drivers/s390/net/qeth_eddp.c
- drivers/s390/net/qeth_main.c
- include/linux/hdlc.h
- include/linux/skbuff.h
- include/net/ax25.h
- include/net/x25device.h
- net/802/fddi.c
- net/802/hippi.c
- net/802/tr.c
- net/atm/br2684.c
- net/atm/clip.c
- net/ax25/ax25_in.c
- net/bluetooth/bnep/core.c
- net/bridge/br_device.c
- net/core/dev.c
- net/core/netpoll.c
- net/core/skbuff.c
- net/decnet/dn_route.c
- net/ethernet/eth.c
- net/ieee80211/ieee80211_rx.c
- net/ipv4/ip_gre.c
- net/ipv4/ip_output.c
- net/ipv4/route.c
- net/ipv6/ip6_output.c
- net/ipv6/route.c
- net/irda/irlap_frame.c
- net/irda/wrapper.c
- net/llc/llc_output.c
- net/netrom/nr_dev.c
- net/wanrouter/wanmain.c
arch/um/drivers/net_kern.c
arch/xtensa/platform-iss/network.c
drivers/block/aoe/aoecmd.c
... | ... | @@ -27,7 +27,8 @@ |
27 | 27 | |
28 | 28 | skb = alloc_skb(len, GFP_ATOMIC); |
29 | 29 | if (skb) { |
30 | - skb->nh.raw = skb->mac.raw = skb->data; | |
30 | + skb_reset_mac_header(skb); | |
31 | + skb->nh.raw = skb->data; | |
31 | 32 | skb->protocol = __constant_htons(ETH_P_AOE); |
32 | 33 | skb->priority = 0; |
33 | 34 | skb->next = skb->prev = NULL; |
drivers/ieee1394/eth1394.c
drivers/infiniband/ulp/ipoib/ipoib_cm.c
... | ... | @@ -408,7 +408,7 @@ |
408 | 408 | skb_put_frags(skb, IPOIB_CM_HEAD_SIZE, wc->byte_len, newskb); |
409 | 409 | |
410 | 410 | skb->protocol = ((struct ipoib_header *) skb->data)->proto; |
411 | - skb->mac.raw = skb->data; | |
411 | + skb_reset_mac_header(skb); | |
412 | 412 | skb_pull(skb, IPOIB_ENCAP_LEN); |
413 | 413 | |
414 | 414 | dev->last_rx = jiffies; |
drivers/infiniband/ulp/ipoib/ipoib_ib.c
... | ... | @@ -216,7 +216,7 @@ |
216 | 216 | if (wc->slid != priv->local_lid || |
217 | 217 | wc->src_qp != priv->qp->qp_num) { |
218 | 218 | skb->protocol = ((struct ipoib_header *) skb->data)->proto; |
219 | - skb->mac.raw = skb->data; | |
219 | + skb_reset_mac_header(skb); | |
220 | 220 | skb_pull(skb, IPOIB_ENCAP_LEN); |
221 | 221 | |
222 | 222 | dev->last_rx = jiffies; |
drivers/isdn/i4l/isdn_net.c
... | ... | @@ -1366,7 +1366,7 @@ |
1366 | 1366 | struct ethhdr *eth; |
1367 | 1367 | unsigned char *rawp; |
1368 | 1368 | |
1369 | - skb->mac.raw = skb->data; | |
1369 | + skb_reset_mac_header(skb); | |
1370 | 1370 | skb_pull(skb, ETH_HLEN); |
1371 | 1371 | eth = eth_hdr(skb); |
1372 | 1372 | |
... | ... | @@ -1786,7 +1786,7 @@ |
1786 | 1786 | } |
1787 | 1787 | skb->dev = ndev; |
1788 | 1788 | skb->pkt_type = PACKET_HOST; |
1789 | - skb->mac.raw = skb->data; | |
1789 | + skb_reset_mac_header(skb); | |
1790 | 1790 | #ifdef ISDN_DEBUG_NET_DUMP |
1791 | 1791 | isdn_dumppkt("R:", skb->data, skb->len, 40); |
1792 | 1792 | #endif |
drivers/isdn/i4l/isdn_ppp.c
... | ... | @@ -1167,7 +1167,7 @@ |
1167 | 1167 | mlp->huptimer = 0; |
1168 | 1168 | #endif /* CONFIG_IPPP_FILTER */ |
1169 | 1169 | skb->dev = dev; |
1170 | - skb->mac.raw = skb->data; | |
1170 | + skb_reset_mac_header(skb); | |
1171 | 1171 | netif_rx(skb); |
1172 | 1172 | /* net_dev->local->stats.rx_packets++; done in isdn_net.c */ |
1173 | 1173 | return; |
drivers/message/fusion/mptlan.c
... | ... | @@ -753,7 +753,7 @@ |
753 | 753 | /* Set the mac.raw pointer, since this apparently isn't getting |
754 | 754 | * done before we get the skb. Pull the data pointer past the mac data. |
755 | 755 | */ |
756 | - skb->mac.raw = skb->data; | |
756 | + skb_reset_mac_header(skb); | |
757 | 757 | skb_pull(skb, 12); |
758 | 758 | |
759 | 759 | dma = pci_map_single(mpt_dev->pcidev, skb->data, skb->len, |
... | ... | @@ -1549,7 +1549,7 @@ |
1549 | 1549 | struct mpt_lan_ohdr *fch = (struct mpt_lan_ohdr *)skb->data; |
1550 | 1550 | struct fcllc *fcllc; |
1551 | 1551 | |
1552 | - skb->mac.raw = skb->data; | |
1552 | + skb_reset_mac_header(skb); | |
1553 | 1553 | skb_pull(skb, sizeof(struct mpt_lan_ohdr)); |
1554 | 1554 | |
1555 | 1555 | if (fch->dtype == htons(0xffff)) { |
drivers/net/appletalk/cops.c
drivers/net/appletalk/ltpc.c
... | ... | @@ -770,7 +770,7 @@ |
770 | 770 | skb->data[0] = dnode; |
771 | 771 | skb->data[1] = snode; |
772 | 772 | skb->data[2] = llaptype; |
773 | - skb->mac.raw = skb->data; /* save pointer to llap header */ | |
773 | + skb_reset_mac_header(skb); /* save pointer to llap header */ | |
774 | 774 | skb_pull(skb,3); |
775 | 775 | |
776 | 776 | /* copy ddp(s,e)hdr + contents */ |
drivers/net/arcnet/arc-rawmode.c
drivers/net/arcnet/capmode.c
... | ... | @@ -122,10 +122,8 @@ |
122 | 122 | } |
123 | 123 | skb_put(skb, length + ARC_HDR_SIZE + sizeof(int)); |
124 | 124 | skb->dev = dev; |
125 | - | |
126 | - pkt = (struct archdr *) skb->data; | |
127 | - | |
128 | - skb->mac.raw = skb->data; | |
125 | + skb_reset_mac_header(skb); | |
126 | + pkt = (struct archdr *)skb->mac.raw; | |
129 | 127 | skb_pull(skb, ARC_HDR_SIZE); |
130 | 128 | |
131 | 129 | /* up to sizeof(pkt->soft) has already been copied from the card */ |
... | ... | @@ -270,9 +268,8 @@ |
270 | 268 | skb_put(ackskb, length + ARC_HDR_SIZE ); |
271 | 269 | ackskb->dev = dev; |
272 | 270 | |
273 | - ackpkt = (struct archdr *) ackskb->data; | |
274 | - | |
275 | - ackskb->mac.raw = ackskb->data; | |
271 | + skb_reset_mac_header(ackskb); | |
272 | + ackpkt = (struct archdr *)ackskb->mac.raw; | |
276 | 273 | /* skb_pull(ackskb, ARC_HDR_SIZE); */ |
277 | 274 | |
278 | 275 |
drivers/net/arcnet/rfc1051.c
drivers/net/arcnet/rfc1201.c
drivers/net/bonding/bond_3ad.c
... | ... | @@ -884,7 +884,7 @@ |
884 | 884 | } |
885 | 885 | |
886 | 886 | skb->dev = slave->dev; |
887 | - skb->mac.raw = skb->data; | |
887 | + skb_reset_mac_header(skb); | |
888 | 888 | skb->nh.raw = skb->data + ETH_HLEN; |
889 | 889 | skb->protocol = PKT_TYPE_LACPDU; |
890 | 890 | skb->priority = TC_PRIO_CONTROL; |
... | ... | @@ -928,7 +928,7 @@ |
928 | 928 | skb_reserve(skb, 16); |
929 | 929 | |
930 | 930 | skb->dev = slave->dev; |
931 | - skb->mac.raw = skb->data; | |
931 | + skb_reset_mac_header(skb); | |
932 | 932 | skb->nh.raw = skb->data + ETH_HLEN; |
933 | 933 | skb->protocol = PKT_TYPE_LACPDU; |
934 | 934 |
drivers/net/bonding/bond_alb.c
... | ... | @@ -890,7 +890,7 @@ |
890 | 890 | data = skb_put(skb, size); |
891 | 891 | memcpy(data, &pkt, size); |
892 | 892 | |
893 | - skb->mac.raw = data; | |
893 | + skb_reset_mac_header(skb); | |
894 | 894 | skb->nh.raw = data + ETH_HLEN; |
895 | 895 | skb->protocol = pkt.type; |
896 | 896 | skb->priority = TC_PRIO_CONTROL; |
... | ... | @@ -1266,7 +1266,7 @@ |
1266 | 1266 | u8 *hash_start = NULL; |
1267 | 1267 | int res = 1; |
1268 | 1268 | |
1269 | - skb->mac.raw = (unsigned char *)skb->data; | |
1269 | + skb_reset_mac_header(skb); | |
1270 | 1270 | eth_data = eth_hdr(skb); |
1271 | 1271 | |
1272 | 1272 | /* make sure that the curr_active_slave and the slaves list do |
drivers/net/cxgb3/cxgb3_offload.c
drivers/net/cxgb3/sge.c
... | ... | @@ -1620,7 +1620,8 @@ |
1620 | 1620 | unsigned int gather_idx) |
1621 | 1621 | { |
1622 | 1622 | rq->offload_pkts++; |
1623 | - skb->mac.raw = skb->nh.raw = skb->h.raw = skb->data; | |
1623 | + skb_reset_mac_header(skb); | |
1624 | + skb->nh.raw = skb->h.raw = skb->data; | |
1624 | 1625 | |
1625 | 1626 | if (rq->polling) { |
1626 | 1627 | rx_gather[gather_idx++] = skb; |
drivers/net/irda/ali-ircc.c
drivers/net/irda/au1k_ir.c
drivers/net/irda/donauboe.c
drivers/net/irda/irda-usb.c
... | ... | @@ -921,7 +921,7 @@ |
921 | 921 | |
922 | 922 | /* Ask the networking layer to queue the packet for the IrDA stack */ |
923 | 923 | dataskb->dev = self->netdev; |
924 | - dataskb->mac.raw = dataskb->data; | |
924 | + skb_reset_mac_header(dataskb); | |
925 | 925 | dataskb->protocol = htons(ETH_P_IRDA); |
926 | 926 | len = dataskb->len; |
927 | 927 | netif_rx(dataskb); |
drivers/net/irda/mcs7780.c
... | ... | @@ -428,7 +428,7 @@ |
428 | 428 | skb_reserve(skb, 1); |
429 | 429 | memcpy(skb->data, buf, new_len); |
430 | 430 | skb_put(skb, new_len); |
431 | - skb->mac.raw = skb->data; | |
431 | + skb_reset_mac_header(skb); | |
432 | 432 | skb->protocol = htons(ETH_P_IRDA); |
433 | 433 | skb->dev = mcs->netdev; |
434 | 434 | |
... | ... | @@ -481,7 +481,7 @@ |
481 | 481 | skb_reserve(skb, 1); |
482 | 482 | memcpy(skb->data, buf, new_len); |
483 | 483 | skb_put(skb, new_len); |
484 | - skb->mac.raw = skb->data; | |
484 | + skb_reset_mac_header(skb); | |
485 | 485 | skb->protocol = htons(ETH_P_IRDA); |
486 | 486 | skb->dev = mcs->netdev; |
487 | 487 |
drivers/net/irda/nsc-ircc.c
drivers/net/irda/pxaficp_ir.c
drivers/net/irda/sa1100_ir.c
drivers/net/irda/smsc-ircc2.c
drivers/net/irda/stir4200.c
drivers/net/irda/via-ircc.c
... | ... | @@ -1125,7 +1125,7 @@ |
1125 | 1125 | self->stats.rx_bytes += len; |
1126 | 1126 | self->stats.rx_packets++; |
1127 | 1127 | skb->dev = self->netdev; |
1128 | - skb->mac.raw = skb->data; | |
1128 | + skb_reset_mac_header(skb); | |
1129 | 1129 | skb->protocol = htons(ETH_P_IRDA); |
1130 | 1130 | netif_rx(skb); |
1131 | 1131 | return TRUE; |
... | ... | @@ -1198,7 +1198,7 @@ |
1198 | 1198 | self->stats.rx_bytes += len; |
1199 | 1199 | self->stats.rx_packets++; |
1200 | 1200 | skb->dev = self->netdev; |
1201 | - skb->mac.raw = skb->data; | |
1201 | + skb_reset_mac_header(skb); | |
1202 | 1202 | skb->protocol = htons(ETH_P_IRDA); |
1203 | 1203 | netif_rx(skb); |
1204 | 1204 | |
... | ... | @@ -1244,7 +1244,7 @@ |
1244 | 1244 | self->stats.rx_bytes += len; |
1245 | 1245 | self->stats.rx_packets++; |
1246 | 1246 | skb->dev = self->netdev; |
1247 | - skb->mac.raw = skb->data; | |
1247 | + skb_reset_mac_header(skb); | |
1248 | 1248 | skb->protocol = htons(ETH_P_IRDA); |
1249 | 1249 | netif_rx(skb); |
1250 | 1250 | if (st_fifo->len < (MAX_RX_WINDOW + 2)) { |
... | ... | @@ -1313,7 +1313,7 @@ |
1313 | 1313 | self->stats.rx_bytes += len; |
1314 | 1314 | self->stats.rx_packets++; |
1315 | 1315 | skb->dev = self->netdev; |
1316 | - skb->mac.raw = skb->data; | |
1316 | + skb_reset_mac_header(skb); | |
1317 | 1317 | skb->protocol = htons(ETH_P_IRDA); |
1318 | 1318 | netif_rx(skb); |
1319 | 1319 | } //while |
drivers/net/irda/vlsi_ir.c
drivers/net/irda/w83977af_ir.c
drivers/net/myri_sbus.c
drivers/net/ppp_generic.c
drivers/net/sb1000.c
... | ... | @@ -834,7 +834,7 @@ |
834 | 834 | goto dropped_frame; |
835 | 835 | } |
836 | 836 | skb->dev = dev; |
837 | - skb->mac.raw = skb->data; | |
837 | + skb_reset_mac_header(skb); | |
838 | 838 | skb->protocol = (unsigned short) buffer[NewDatagramHeaderSkip + 16]; |
839 | 839 | insw(ioaddr, skb_put(skb, NewDatagramDataSize), |
840 | 840 | NewDatagramDataSize / 2); |
drivers/net/tun.c
drivers/net/wan/cosa.c
... | ... | @@ -773,7 +773,7 @@ |
773 | 773 | } |
774 | 774 | chan->rx_skb->protocol = htons(ETH_P_WAN_PPP); |
775 | 775 | chan->rx_skb->dev = chan->pppdev.dev; |
776 | - chan->rx_skb->mac.raw = chan->rx_skb->data; | |
776 | + skb_reset_mac_header(chan->rx_skb) | |
777 | 777 | chan->stats.rx_packets++; |
778 | 778 | chan->stats.rx_bytes += chan->cosa->rxsize; |
779 | 779 | netif_rx(chan->rx_skb); |
drivers/net/wan/cycx_x25.c
drivers/net/wan/dlci.c
drivers/net/wan/farsync.c
drivers/net/wan/lmc/lmc_main.c
... | ... | @@ -1667,7 +1667,7 @@ |
1667 | 1667 | skb_put (skb, len); |
1668 | 1668 | skb->protocol = lmc_proto_type(sc, skb); |
1669 | 1669 | skb->protocol = htons(ETH_P_WAN_PPP); |
1670 | - skb->mac.raw = skb->data; | |
1670 | + skb_reset_mac_header(skb); | |
1671 | 1671 | // skb->nh.raw = skb->data; |
1672 | 1672 | skb->dev = dev; |
1673 | 1673 | lmc_proto_netif(sc, skb); |
... | ... | @@ -1705,7 +1705,7 @@ |
1705 | 1705 | memcpy(skb_put(nsb, len), skb->data, len); |
1706 | 1706 | |
1707 | 1707 | nsb->protocol = lmc_proto_type(sc, skb); |
1708 | - nsb->mac.raw = nsb->data; | |
1708 | + skb_reset_mac_header(nsb); | |
1709 | 1709 | // nsb->nh.raw = nsb->data; |
1710 | 1710 | nsb->dev = dev; |
1711 | 1711 | lmc_proto_netif(sc, nsb); |
drivers/net/wan/pc300_drv.c
drivers/net/wan/pc300_tty.c
drivers/net/wireless/airo.c
... | ... | @@ -3411,7 +3411,7 @@ |
3411 | 3411 | OUT4500( apriv, EVACK, EV_RX); |
3412 | 3412 | |
3413 | 3413 | if (test_bit(FLAG_802_11, &apriv->flags)) { |
3414 | - skb->mac.raw = skb->data; | |
3414 | + skb_reset_mac_header(skb); | |
3415 | 3415 | skb->pkt_type = PACKET_OTHERHOST; |
3416 | 3416 | skb->dev = apriv->wifidev; |
3417 | 3417 | skb->protocol = htons(ETH_P_802_2); |
... | ... | @@ -3746,7 +3746,7 @@ |
3746 | 3746 | wireless_spy_update(ai->dev, sa, &wstats); |
3747 | 3747 | } |
3748 | 3748 | #endif /* IW_WIRELESS_SPY */ |
3749 | - skb->mac.raw = skb->data; | |
3749 | + skb_reset_mac_header(skb); | |
3750 | 3750 | skb->pkt_type = PACKET_OTHERHOST; |
3751 | 3751 | skb->dev = ai->wifidev; |
3752 | 3752 | skb->protocol = htons(ETH_P_802_2); |
drivers/net/wireless/hostap/hostap_80211_rx.c
... | ... | @@ -167,7 +167,7 @@ |
167 | 167 | |
168 | 168 | ret = skb->len - phdrlen; |
169 | 169 | skb->dev = dev; |
170 | - skb->mac.raw = skb->data; | |
170 | + skb_reset_mac_header(skb); | |
171 | 171 | skb_pull(skb, hdrlen); |
172 | 172 | if (prism_header) |
173 | 173 | skb_pull(skb, phdrlen); |
174 | 174 | |
175 | 175 | |
... | ... | @@ -1073,10 +1073,11 @@ |
1073 | 1073 | |
1074 | 1074 | if (skb2 != NULL) { |
1075 | 1075 | /* send to wireless media */ |
1076 | + skb2->dev = dev; | |
1076 | 1077 | skb2->protocol = __constant_htons(ETH_P_802_3); |
1077 | - skb2->mac.raw = skb2->nh.raw = skb2->data; | |
1078 | + skb_reset_mac_header(skb2); | |
1079 | + skb2->nh.raw = skb2->data; | |
1078 | 1080 | /* skb2->nh.raw = skb2->data + ETH_HLEN; */ |
1079 | - skb2->dev = dev; | |
1080 | 1081 | dev_queue_xmit(skb2); |
1081 | 1082 | } |
1082 | 1083 |
drivers/net/wireless/hostap/hostap_80211_tx.c
... | ... | @@ -237,7 +237,7 @@ |
237 | 237 | iface->stats.tx_packets++; |
238 | 238 | iface->stats.tx_bytes += skb->len; |
239 | 239 | |
240 | - skb->mac.raw = skb->data; | |
240 | + skb_reset_mac_header(skb); | |
241 | 241 | meta = (struct hostap_skb_tx_data *) skb->cb; |
242 | 242 | memset(meta, 0, sizeof(*meta)); |
243 | 243 | meta->magic = HOSTAP_SKB_TX_DATA_MAGIC; |
drivers/net/wireless/hostap/hostap_ap.c
drivers/net/wireless/hostap/hostap_hw.c
drivers/net/wireless/hostap/hostap_main.c
drivers/net/wireless/ipw2200.c
... | ... | @@ -8133,7 +8133,7 @@ |
8133 | 8133 | skb->dev = priv->ieee->dev; |
8134 | 8134 | |
8135 | 8135 | /* Point raw at the ieee80211_stats */ |
8136 | - skb->mac.raw = skb->data; | |
8136 | + skb_reset_mac_header(skb); | |
8137 | 8137 | |
8138 | 8138 | skb->pkt_type = PACKET_OTHERHOST; |
8139 | 8139 | skb->protocol = __constant_htons(ETH_P_80211_STATS); |
drivers/net/wireless/orinoco.c
... | ... | @@ -770,7 +770,7 @@ |
770 | 770 | |
771 | 771 | /* Copy the 802.11 header to the skb */ |
772 | 772 | memcpy(skb_put(skb, hdrlen), &(desc->frame_ctl), hdrlen); |
773 | - skb->mac.raw = skb->data; | |
773 | + skb_reset_mac_header(skb); | |
774 | 774 | |
775 | 775 | /* If any, copy the data from the card to the skb */ |
776 | 776 | if (datalen > 0) { |
drivers/net/wireless/prism54/islpci_eth.c
drivers/net/wireless/strip.c
... | ... | @@ -2009,7 +2009,7 @@ |
2009 | 2009 | packetlen); |
2010 | 2010 | skb->dev = get_strip_dev(strip_info); |
2011 | 2011 | skb->protocol = header->protocol; |
2012 | - skb->mac.raw = skb->data; | |
2012 | + skb_reset_mac_header(skb); | |
2013 | 2013 | |
2014 | 2014 | /* Having put a fake header on the front of the sk_buff for the */ |
2015 | 2015 | /* benefit of tools like tcpdump, skb_pull now 'consumes' that */ |
drivers/s390/net/ctcmain.c
... | ... | @@ -455,7 +455,7 @@ |
455 | 455 | return; |
456 | 456 | } |
457 | 457 | skb_put(pskb, header->length); |
458 | - pskb->mac.raw = pskb->data; | |
458 | + skb_reset_mac_header(pskb); | |
459 | 459 | len -= header->length; |
460 | 460 | skb = dev_alloc_skb(pskb->len); |
461 | 461 | if (!skb) { |
... | ... | @@ -473,7 +473,7 @@ |
473 | 473 | return; |
474 | 474 | } |
475 | 475 | memcpy(skb_put(skb, pskb->len), pskb->data, pskb->len); |
476 | - skb->mac.raw = skb->data; | |
476 | + skb_reset_mac_header(skb); | |
477 | 477 | skb->dev = pskb->dev; |
478 | 478 | skb->protocol = pskb->protocol; |
479 | 479 | pskb->ip_summed = CHECKSUM_UNNECESSARY; |
drivers/s390/net/netiucv.c
... | ... | @@ -635,7 +635,7 @@ |
635 | 635 | return; |
636 | 636 | } |
637 | 637 | skb_put(pskb, header->next); |
638 | - pskb->mac.raw = pskb->data; | |
638 | + skb_reset_mac_header(pskb); | |
639 | 639 | skb = dev_alloc_skb(pskb->len); |
640 | 640 | if (!skb) { |
641 | 641 | PRINT_WARN("%s Out of memory in netiucv_unpack_skb\n", |
... | ... | @@ -646,7 +646,7 @@ |
646 | 646 | return; |
647 | 647 | } |
648 | 648 | memcpy(skb_put(skb, pskb->len), pskb->data, pskb->len); |
649 | - skb->mac.raw = skb->data; | |
649 | + skb_reset_mac_header(skb); | |
650 | 650 | skb->dev = pskb->dev; |
651 | 651 | skb->protocol = pskb->protocol; |
652 | 652 | pskb->ip_summed = CHECKSUM_UNNECESSARY; |
drivers/s390/net/qeth_eddp.c
... | ... | @@ -486,7 +486,7 @@ |
486 | 486 | return -ENOMEM; |
487 | 487 | } |
488 | 488 | if (qhdr->hdr.l2.id == QETH_HEADER_TYPE_LAYER2) { |
489 | - skb->mac.raw = (skb->data) + sizeof(struct qeth_hdr); | |
489 | + skb->mac.raw = skb->data + sizeof(struct qeth_hdr); | |
490 | 490 | memcpy(&eddp->mac, eth_hdr(skb), ETH_HLEN); |
491 | 491 | #ifdef CONFIG_QETH_VLAN |
492 | 492 | if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q)) { |
drivers/s390/net/qeth_main.c
... | ... | @@ -2278,7 +2278,7 @@ |
2278 | 2278 | (card->info.link_type == QETH_LINK_TYPE_LANE_TR)) |
2279 | 2279 | return tr_type_trans(skb,dev); |
2280 | 2280 | #endif /* CONFIG_TR */ |
2281 | - skb->mac.raw = skb->data; | |
2281 | + skb_reset_mac_header(skb); | |
2282 | 2282 | skb_pull(skb, ETH_HLEN ); |
2283 | 2283 | eth = eth_hdr(skb); |
2284 | 2284 | |
... | ... | @@ -2461,7 +2461,7 @@ |
2461 | 2461 | if (card->options.fake_ll) |
2462 | 2462 | qeth_rebuild_skb_fake_ll(card, skb, hdr); |
2463 | 2463 | else |
2464 | - skb->mac.raw = skb->data; | |
2464 | + skb_reset_mac_header(skb); | |
2465 | 2465 | skb->ip_summed = card->options.checksum_type; |
2466 | 2466 | if (card->options.checksum_type == HW_CHECKSUMMING){ |
2467 | 2467 | if ( (hdr->hdr.l3.ext_flags & |
include/linux/hdlc.h
include/linux/skbuff.h
... | ... | @@ -960,6 +960,11 @@ |
960 | 960 | skb->tail += len; |
961 | 961 | } |
962 | 962 | |
963 | +static inline void skb_reset_mac_header(struct sk_buff *skb) | |
964 | +{ | |
965 | + skb->mac.raw = skb->data; | |
966 | +} | |
967 | + | |
963 | 968 | /* |
964 | 969 | * CPUs often take a performance hit when accessing unaligned memory |
965 | 970 | * locations. The actual performance hit varies, it can be small if the |
include/net/ax25.h
... | ... | @@ -263,8 +263,8 @@ |
263 | 263 | static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev) |
264 | 264 | { |
265 | 265 | skb->dev = dev; |
266 | + skb_reset_mac_header(skb); | |
266 | 267 | skb->pkt_type = PACKET_HOST; |
267 | - skb->mac.raw = skb->data; | |
268 | 268 | return htons(ETH_P_AX25); |
269 | 269 | } |
270 | 270 |
include/net/x25device.h
net/802/fddi.c
net/802/hippi.c
net/802/tr.c
net/atm/br2684.c
... | ... | @@ -458,7 +458,7 @@ |
458 | 458 | /* FIXME: tcpdump shows that pointer to mac header is 2 bytes earlier, |
459 | 459 | than should be. What else should I set? */ |
460 | 460 | skb_pull(skb, plen); |
461 | - skb->mac.raw = ((char *) (skb->data)) - ETH_HLEN; | |
461 | + skb->mac.raw = skb->data - ETH_HLEN; | |
462 | 462 | skb->pkt_type = PACKET_HOST; |
463 | 463 | #ifdef CONFIG_BR2684_FAST_TRANS |
464 | 464 | skb->protocol = ((u16 *) skb->data)[-1]; |
net/atm/clip.c
net/ax25/ax25_in.c
net/bluetooth/bnep/core.c
net/bridge/br_device.c
net/core/dev.c
... | ... | @@ -1066,7 +1066,7 @@ |
1066 | 1066 | set by sender, so that the second statement is |
1067 | 1067 | just protection against buggy protocols. |
1068 | 1068 | */ |
1069 | - skb2->mac.raw = skb2->data; | |
1069 | + skb_reset_mac_header(skb2); | |
1070 | 1070 | |
1071 | 1071 | if (skb2->nh.raw < skb2->data || |
1072 | 1072 | skb2->nh.raw > skb2->tail) { |
... | ... | @@ -1206,7 +1206,7 @@ |
1206 | 1206 | |
1207 | 1207 | BUG_ON(skb_shinfo(skb)->frag_list); |
1208 | 1208 | |
1209 | - skb->mac.raw = skb->data; | |
1209 | + skb_reset_mac_header(skb); | |
1210 | 1210 | skb->mac_len = skb->nh.raw - skb->data; |
1211 | 1211 | __skb_pull(skb, skb->mac_len); |
1212 | 1212 |
net/core/netpoll.c
... | ... | @@ -324,7 +324,7 @@ |
324 | 324 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); |
325 | 325 | |
326 | 326 | eth = (struct ethhdr *) skb_push(skb, ETH_HLEN); |
327 | - skb->mac.raw = skb->data; | |
327 | + skb_reset_mac_header(skb); | |
328 | 328 | skb->protocol = eth->h_proto = htons(ETH_P_IP); |
329 | 329 | memcpy(eth->h_source, np->local_mac, 6); |
330 | 330 | memcpy(eth->h_dest, np->remote_mac, 6); |
net/core/skbuff.c
... | ... | @@ -1928,7 +1928,7 @@ |
1928 | 1928 | nskb->mac_len = skb->mac_len; |
1929 | 1929 | |
1930 | 1930 | skb_reserve(nskb, headroom); |
1931 | - nskb->mac.raw = nskb->data; | |
1931 | + skb_reset_mac_header(nskb); | |
1932 | 1932 | nskb->nh.raw = nskb->data + skb->mac_len; |
1933 | 1933 | nskb->h.raw = nskb->nh.raw + (skb->h.raw - skb->nh.raw); |
1934 | 1934 | memcpy(skb_put(nskb, doffset), skb->data, doffset); |
net/decnet/dn_route.c
net/ethernet/eth.c
net/ieee80211/ieee80211_rx.c
... | ... | @@ -42,7 +42,7 @@ |
42 | 42 | u16 fc = le16_to_cpu(hdr->frame_ctl); |
43 | 43 | |
44 | 44 | skb->dev = ieee->dev; |
45 | - skb->mac.raw = skb->data; | |
45 | + skb_reset_mac_header(skb); | |
46 | 46 | skb_pull(skb, ieee80211_get_hdrlen(fc)); |
47 | 47 | skb->pkt_type = PACKET_OTHERHOST; |
48 | 48 | skb->protocol = __constant_htons(ETH_P_80211_RAW); |
49 | 49 | |
50 | 50 | |
... | ... | @@ -789,10 +789,11 @@ |
789 | 789 | |
790 | 790 | if (skb2 != NULL) { |
791 | 791 | /* send to wireless media */ |
792 | + skb2->dev = dev; | |
792 | 793 | skb2->protocol = __constant_htons(ETH_P_802_3); |
793 | - skb2->mac.raw = skb2->nh.raw = skb2->data; | |
794 | + skb_reset_mac_header(skb2); | |
795 | + skb2->nh.raw = skb2->data; | |
794 | 796 | /* skb2->nh.raw = skb2->data + ETH_HLEN; */ |
795 | - skb2->dev = dev; | |
796 | 797 | dev_queue_xmit(skb2); |
797 | 798 | } |
798 | 799 | #endif |
net/ipv4/ip_gre.c
net/ipv4/ip_output.c
... | ... | @@ -95,7 +95,7 @@ |
95 | 95 | /* dev_loopback_xmit for use with netfilter. */ |
96 | 96 | static int ip_dev_loopback_xmit(struct sk_buff *newskb) |
97 | 97 | { |
98 | - newskb->mac.raw = newskb->data; | |
98 | + skb_reset_mac_header(newskb); | |
99 | 99 | __skb_pull(newskb, newskb->nh.raw - newskb->data); |
100 | 100 | newskb->pkt_type = PACKET_LOOPBACK; |
101 | 101 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
net/ipv4/route.c
... | ... | @@ -2747,7 +2747,8 @@ |
2747 | 2747 | /* Reserve room for dummy headers, this skb can pass |
2748 | 2748 | through good chunk of routing engine. |
2749 | 2749 | */ |
2750 | - skb->mac.raw = skb->nh.raw = skb->data; | |
2750 | + skb_reset_mac_header(skb); | |
2751 | + skb->nh.raw = skb->data; | |
2751 | 2752 | |
2752 | 2753 | /* Bugfix: need to give ip_route_input enough of an IP header to not gag. */ |
2753 | 2754 | skb->nh.iph->protocol = IPPROTO_ICMP; |
net/ipv6/ip6_output.c
... | ... | @@ -88,7 +88,7 @@ |
88 | 88 | /* dev_loopback_xmit for use with netfilter. */ |
89 | 89 | static int ip6_dev_loopback_xmit(struct sk_buff *newskb) |
90 | 90 | { |
91 | - newskb->mac.raw = newskb->data; | |
91 | + skb_reset_mac_header(newskb); | |
92 | 92 | __skb_pull(newskb, newskb->nh.raw - newskb->data); |
93 | 93 | newskb->pkt_type = PACKET_LOOPBACK; |
94 | 94 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
net/ipv6/route.c
... | ... | @@ -2218,7 +2218,7 @@ |
2218 | 2218 | /* Reserve room for dummy headers, this skb can pass |
2219 | 2219 | through good chunk of routing engine. |
2220 | 2220 | */ |
2221 | - skb->mac.raw = skb->data; | |
2221 | + skb_reset_mac_header(skb); | |
2222 | 2222 | skb_reserve(skb, MAX_HEADER + sizeof(struct ipv6hdr)); |
2223 | 2223 | |
2224 | 2224 | rt = (struct rt6_info*) ip6_route_output(NULL, &fl); |
net/irda/irlap_frame.c
... | ... | @@ -93,7 +93,8 @@ |
93 | 93 | { |
94 | 94 | /* Some common init stuff */ |
95 | 95 | skb->dev = self->netdev; |
96 | - skb->h.raw = skb->nh.raw = skb->mac.raw = skb->data; | |
96 | + skb_reset_mac_header(skb); | |
97 | + skb->h.raw = skb->nh.raw = skb->data; | |
97 | 98 | skb->protocol = htons(ETH_P_IRDA); |
98 | 99 | skb->priority = TC_PRIO_BESTEFFORT; |
99 | 100 |
net/irda/wrapper.c
net/llc/llc_output.c
net/netrom/nr_dev.c
net/wanrouter/wanmain.c