From: Andrew Morton Try to repair these: drivers/net/vioc/vioc_transmit.c: In function 'init_f7_header': drivers/net/vioc/vioc_transmit.c:600: error: 'struct sk_buff' has no member named 'mac' drivers/net/vioc/vioc_transmit.c:602: error: 'struct sk_buff' has no member named 'nh' drivers/net/vioc/vioc_transmit.c:605: error: 'struct sk_buff' has no member named 'h' drivers/net/vioc/vioc_transmit.c:609: error: 'struct sk_buff' has no member named 'h' drivers/net/vioc/vioc_transmit.c: In function 'vnic_start_xmit': drivers/net/vioc/vioc_transmit.c:703: error: 'struct sk_buff' has no member named 'mac' drivers/net/vioc/vioc_transmit.c:704: error: 'struct sk_buff' has no member named 'nh' drivers/net/vioc/vioc_transmit.c: In function 'vnic_eth_header': drivers/net/vioc/vioc_transmit.c:742: error: 'struct sk_buff' has no member named 'mac' This driver looks fairly revolting. Cc: Jeff Garzik Cc: "David S. Miller" Signed-off-by: Andrew Morton --- drivers/net/vioc/vioc_transmit.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff -puN drivers/net/vioc/vioc_transmit.c~git-net-vs-git-netdev-all drivers/net/vioc/vioc_transmit.c --- a/drivers/net/vioc/vioc_transmit.c~git-net-vs-git-netdev-all +++ a/drivers/net/vioc/vioc_transmit.c @@ -602,16 +602,17 @@ static void init_f7_header(struct sk_buf */ /* Determine packet tag */ - if (((struct ethhdr *)skb->mac.raw)->h_proto == ntohs(ETH_P_IP)) { + if (((struct ethhdr *)skb_mac_header(skb))->h_proto == + ntohs(ETH_P_IP)) { if (skb->ip_summed == VIOC_CSUM_OFFLOAD) { - switch (skb->nh.iph->protocol) { + switch (ip_hdr(skb)->protocol) { case IPPROTO_TCP: tag = VIOC_F7PF_ET_ETH_IPV4_CKS; - skb->h.th->check = 0; + tcp_hdr(skb)->check = 0; break; case IPPROTO_UDP: tag = VIOC_F7PF_ET_ETH_IPV4_CKS; - skb->h.uh->check = 0; + udp_hdr(skb)->check = 0; break; default: tag = VIOC_F7PF_ET_ETH_IPV4; @@ -705,8 +706,8 @@ static int vnic_start_xmit(struct sk_buf } /* Don't rely on the skb pointers being set */ - skb->mac.raw = skb->data; - skb->nh.raw = skb->data + ETH_HLEN; + skb_set_mac_header(skb, 0); + skb_set_network_header(skb, ETH_HLEN); skb_push(skb, F7PF_HLEN_STD); init_f7_header(skb); @@ -745,7 +746,7 @@ static int vnic_eth_header(struct sk_buf { struct ethhdr *eth = (struct ethhdr *)skb_push(skb, ETH_HLEN); - skb->mac.raw = skb->data; + skb_set_mac_header(skb, 0); /* * Set the protocol type. For a packet of type _