kernel: fix build problems with recent kernel versions
[openwrt.git] / package / siit / src / siit.c
index 897423d..5362c1d 100644 (file)
@@ -4,9 +4,13 @@
  *
  */
 
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
+#include <generated/autoconf.h>
+#else
 #include <linux/autoconf.h>
+#endif
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>       /* printk() */
 #include <linux/slab.h>
@@ -27,7 +31,9 @@
 #include <linux/init.h>
 #include <asm/uaccess.h>
 #include <asm/checksum.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
 #include <net/ip6_checksum.h>
+#endif
 #include <linux/in6.h>
 #include "siit.h"
 
@@ -1384,10 +1390,19 @@ static bool header_ops_init = false;
 static struct header_ops siit_header_ops ____cacheline_aligned;
 #endif
 
+#if !(defined CONFIG_COMPAT_NET_DEV_OPS) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
+static const struct net_device_ops siit_netdev_ops = {
+       .ndo_open               = siit_open,
+       .ndo_stop               = siit_release,
+       .ndo_start_xmit         = siit_xmit,
+};
+#endif
+
 /*
  * The init function initialize of the SIIT device..
  * It is invoked by register_netdev()
  */
+
 static void
 siit_init(struct net_device *dev)
 {
@@ -1397,9 +1412,15 @@ siit_init(struct net_device *dev)
        /*
         * Assign device function.
         */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
        dev->open            = siit_open;
        dev->stop            = siit_release;
        dev->hard_start_xmit = siit_xmit;
+#else
+#if !(defined CONFIG_COMPAT_NET_DEV_OPS) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
+       dev->netdev_ops = &siit_netdev_ops;
+#endif
+#endif
        dev->flags           |= IFF_NOARP;     /* ARP not used */
        dev->tx_queue_len = 10;
 
This page took 0.024488 seconds and 4 git commands to generate.