diff -c -b vmxnet-only-orig/vmxnet.c vmxnet-only/vmxnet.c *** vmxnet-only-orig/vmxnet.c 2007-03-30 13:54:46.000000000 -0400 --- vmxnet-only/vmxnet.c 2007-06-14 14:47:40.000000000 -0400 *************** *** 8,14 **** --- 8,16 ---- #include "driver-config.h" + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18) #include + #endif #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9) *************** *** 94,99 **** --- 96,109 ---- #endif #endif + #ifdef CHECKSUM_COMPLETE + // as of 2.6.18 they split CHECKSUM_HW into two + #define CHECK_IP_SUMMED(n) \ + (((n) == CHECKSUM_COMPLETE) || ((n) == CHECKSUM_PARTIAL)) + #else + #define CHECK_IP_SUMMED(n) ((n) == CHECKSUM_HW) + #endif + /* Data structure used when determining what hardware the driver supports. */ static const struct pci_device_id vmxnet_chips[] = *************** *** 937,948 **** tcpLen, IPPROTO_TCP, 0); skb->ip_summed = CHECKSUM_HW; } } #endif ! if (skb->ip_summed == CHECKSUM_HW) { xre->flags |= VMXNET2_TX_HW_XSUM; } else { xre->flags &= ~VMXNET2_TX_HW_XSUM; --- 947,962 ---- tcpLen, IPPROTO_TCP, 0); + #ifdef CHECKSUM_COMPLETE + skb->ip_summed = CHECKSUM_COMPLETE; + #else skb->ip_summed = CHECKSUM_HW; + #endif } } #endif ! if (CHECK_IP_SUMMED(skb->ip_summed)) { xre->flags |= VMXNET2_TX_HW_XSUM; } else { xre->flags &= ~VMXNET2_TX_HW_XSUM;