Index: /trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c	(revision 64194)
+++ /trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c	(revision 64195)
@@ -87,4 +87,10 @@
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+# define VBOX_SKB_PAGE(page) page.p
+#else
+# define VBOX_SKB_PAGE(page) page
+#endif
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34)
 # define VBOX_NETDEV_NAME(dev)              netdev_name(dev)
@@ -104,7 +110,9 @@
 # define VBOX_SKB_RESET_NETWORK_HDR(skb)    skb_reset_network_header(skb)
 # define VBOX_SKB_RESET_MAC_HDR(skb)        skb_reset_mac_header(skb)
+# define VBOX_SKB_CSUM_OFFSET(skb)          skb->csum_offset
 #else
 # define VBOX_SKB_RESET_NETWORK_HDR(skb)    skb->nh.raw = skb->data
 # define VBOX_SKB_RESET_MAC_HDR(skb)        skb->mac.raw = skb->data
+# define VBOX_SKB_CSUM_OFFSET(skb)          skb->csum
 #endif
 
@@ -853,5 +861,5 @@
     {
         unsigned uCsumStartOffset = vboxNetFltLinuxGetChecksumStartOffset(pBuf);
-        unsigned uCsumStoreOffset = uCsumStartOffset + pBuf->csum_offset - cbConsumed;
+        unsigned uCsumStoreOffset = uCsumStartOffset + VBOX_SKB_CSUM_OFFSET(pBuf) - cbConsumed;
         Log3(("cbConsumed=%u cbProduced=%u uCsumStartOffset=%u uCsumStoreOffset=%u\n",
               cbConsumed, cbProduced, uCsumStartOffset, uCsumStoreOffset));
@@ -898,5 +906,5 @@
         skb_frag_t *pFrag = &skb_shinfo(pBuf)->frags[i];
         pSG->aSegs[iSeg].cb = pFrag->size;
-        pSG->aSegs[iSeg].pv = kmap_atomic(pFrag->page.p) + pFrag->page_offset;
+        pSG->aSegs[iSeg].pv = kmap_atomic(VBOX_SKB_PAGE(pFrag->page)) + pFrag->page_offset;
         Log6((" %p", pSG->aSegs[iSeg].pv));
         pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS;
@@ -914,5 +922,5 @@
             skb_frag_t *pFrag = &skb_shinfo(pFragBuf)->frags[i];
             pSG->aSegs[iSeg].cb = pFrag->size;
-            pSG->aSegs[iSeg].pv = kmap_atomic(pFrag->page.p) + pFrag->page_offset;
+            pSG->aSegs[iSeg].pv = kmap_atomic(VBOX_SKB_PAGE(pFrag->page)) + pFrag->page_offset;
             Log6((" %p", pSG->aSegs[iSeg].pv));
             pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS;
@@ -1101,5 +1109,5 @@
     if (pBuf->ip_summed == CHECKSUM_PARTIAL && pBuf->pkt_type == PACKET_OUTGOING)
     {
-        *pcbTemp = vboxNetFltLinuxGetChecksumStartOffset(pBuf) + pBuf->csum_offset + sizeof(uint16_t);
+        *pcbTemp = vboxNetFltLinuxGetChecksumStartOffset(pBuf) + VBOX_SKB_CSUM_OFFSET(pBuf) + sizeof(uint16_t);
     }
 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
