From 587fc92e29907a5968d3bce2de8ef3aba510fbaa Mon Sep 17 00:00:00 2001
From: Florian Fainelli <florian@openwrt.org>
Date: Tue, 27 Oct 2009 22:50:34 +0000
Subject: [PATCH] fix siit compile with 2.6.30 kernels and superior, when
 CONFIG_COMPAT_NET_DEV_OPS is not set

SVN-Revision: 18191
---
 package/siit/src/siit.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/package/siit/src/siit.c b/package/siit/src/siit.c
index dddc8ef875..c645a2580d 100644
--- a/package/siit/src/siit.c
+++ b/package/siit/src/siit.c
@@ -1386,10 +1386,19 @@ static bool header_ops_init = false;
 static struct header_ops siit_header_ops ____cacheline_aligned;
 #endif
 
+#ifndef CONFIG_COMPAT_NET_DEV_OPS
+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)
 {
@@ -1399,9 +1408,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
+#ifndef CONFIG_COMPAT_NET_DEV_OPS
+	dev->netdev_ops = &siit_netdev_ops;
+#endif
+#endif
 	dev->flags           |= IFF_NOARP;     /* ARP not used */
 	dev->tx_queue_len = 10;
 
-- 
2.30.2