diff -Naru vmnet-only/bridge.c vmnet-only.new/bridge.c --- vmnet-only/bridge.c 2007-03-21 07:00:55.000000000 +0900 +++ vmnet-only.new/bridge.c 2007-07-21 10:16:42.000000000 +0900 @@ -1083,12 +1083,12 @@ VNetBridgeComputeHeaderPos(struct sk_buff *skb) // IN: buffer to examine { /* Maybe some kernel gets it right... */ - if (skb->h.raw != skb->nh.raw) { + if (skb->transport_header != skb->network_header) { return; } switch (be16_to_cpu(skb->protocol)) { case ETH_P_IP: - skb->h.raw = skb->nh.raw + (skb->nh.raw[0] & 0x0F) * 4; + skb->transport_header = skb->network_header + (skb->network_header[0] & 0x0F) * 4; return; default: LOG(3, (KERN_DEBUG "Unknown EII protocol %04X: csum at %d\n", @@ -1370,7 +1370,7 @@ # endif if (bridge->smac) { - if (VNetCallSMACFunc(bridge->smac, &skb, skb->mac.raw, + if (VNetCallSMACFunc(bridge->smac, &skb, skb->mac_header, SMAC_CheckPacketFromHost) != PacketStatusForwardPacket) { LOG(4, (KERN_NOTICE "bridge-%s: packet dropped .\n", @@ -1392,7 +1392,7 @@ #endif #endif - skb_push(skb, skb->data - skb->mac.raw); + skb_push(skb, skb->data - skb->mac_header); LOG(3, (KERN_DEBUG "bridge-%s: receive %d\n", bridge->name, (int) skb->len)); diff -Naru vmnet-only/filter.c vmnet-only.new/filter.c --- vmnet-only/filter.c 2007-03-21 07:00:55.000000000 +0900 +++ vmnet-only.new/filter.c 2007-07-21 10:22:16.000000000 +0900 @@ -229,15 +229,15 @@ /* When the host receives, hooknum is NF_IP_LOCAL_IN. */ transmit = (hooknum == NF_IP_POST_ROUTING); - ip = skb->nh.iph; + ip = skb->network_header; packetHeader = (uint8 *)ip; if (transmit) { /* skb all set up for us. */ - packet = skb->h.raw; + packet = skb->transport_header; } else { /* skb hasn't had a chance to be processed by TCP yet. */ - packet = skb->nh.raw + (ip->ihl << 2); + packet = skb->network_header + (ip->ihl << 2); } HostFilterPrint(("PacketFilter: IP ver %d ihl %d tos %d len %d id %d\n" @@ -259,13 +259,13 @@ * know why, but in such cases, this calculation will lead to a negative * packetLength, and the packet to be dropped. */ - packetLength = skb->len - (skb->nh.raw - skb->mac.raw) - (ip->ihl << 2); + packetLength = skb->len - (skb->network_header - skb->mac_header) - (ip->ihl << 2); } if (packetLength < 0) { HostFilterPrint(("PacketFilter: ill formed packet for IPv4\n")); HostFilterPrint(("skb: len %d h.raw %p nh.raw %p mac.raw %p, packetLength %d\n", - skb->len, skb->h.raw, skb->nh.raw, skb->mac.raw, packetLength)); + skb->len, skb->transport_header, skb->network_header, skb->mac_header, packetLength)); verdict = NF_DROP; DropPacket(VNET_FILTER_ACTION_DRP_SHORT, packetHeader, packet, 0); goto out_unlock; diff -Naru vmnet-only/userif.c vmnet-only.new/userif.c --- vmnet-only/userif.c 2007-03-21 07:00:55.000000000 +0900 +++ vmnet-only.new/userif.c 2007-07-21 10:18:53.000000000 +0900 @@ -627,13 +627,13 @@ */ if (skb->pkt_type == PACKET_OUTGOING && /* Packet must be outgoing */ skb->ip_summed == VM_CHECKSUM_PARTIAL && /* Without checksum */ - skb->h.raw != skb->nh.raw && /* We must know where header is */ + skb->transport_header != skb->network_header && /* We must know where header is */ skb->len == count) { /* No truncation may occur */ size_t skl; int csum; u_int16_t csum16; - skl = skb->h.raw - skb->data; + skl = skb->transport_header - skb->data; if (VNetCopyDatagram(skb, buf, skl)) { return -EFAULT; } diff -Naru vmnet-only/vnetInt.h vmnet-only.new/vnetInt.h --- vmnet-only/vnetInt.h 2007-03-21 07:00:55.000000000 +0900 +++ vmnet-only.new/vnetInt.h 2007-07-21 10:16:42.000000000 +0900 @@ -25,8 +25,8 @@ #define DEV_QUEUE_XMIT(skb, dev, pri) ( \ (skb)->dev = (dev), \ (skb)->priority = (pri), \ - (skb)->mac.raw = (skb)->data, \ - (skb)->nh.raw = (skb)->data + sizeof (struct ethhdr), \ + (skb)->mac_header = (skb)->data, \ + (skb)->network_header = (skb)->data + sizeof (struct ethhdr), \ dev_queue_xmit(skb) \ ) #ifdef KERNEL_2_3_15