datapath: Fix build on 2.6.18.
authorBen Pfaff <blp@nicira.com>
Wed, 10 Nov 2010 00:22:24 +0000 (16:22 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 10 Nov 2010 00:22:24 +0000 (16:22 -0800)
Build-tested (only) on 2.6.18 from XenServer 5.5.0, 2.6.26, 2.6.29, 2.6.34,
and 2.6.36.

Signed-off-by: Ben Pfaff <blp@nicira.com>
include/linux/if_link.h

index 41f1a9cc91f60e6f29f1d299cc22863227b8608e..6181a5d593bb9eb22d31bdc677a0d43f157136a4 100644 (file)
@@ -1,9 +1,19 @@
 #ifndef __LINUX_IF_LINK_WRAPPER_H
 #define __LINUX_IF_LINK_WRAPPER_H 1
 
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
 #include_next <linux/if_link.h>
+#else
+/* Before 2.6.19 there was no <linux/if_link.h>.  Instead all of the types now
+ * declared there were in <linux/if.h>.  Unfortunately <linux/if.h> from 2.6.18
+ * conflicts badly enough with <net/if.h> to break the userspace build.  All
+ * we really need from <linux/if_link.h> is struct rtnl_link_stats64, which in
+ * turn only really needs __u64.  */
+#include <linux/types.h>
+#endif
 
-#include <linux/version.h>
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
 /* The main device statistics structure */
 struct rtnl_link_stats64 {