datapath: Check for backported dev_get_by_index_rcu().
[sliver-openvswitch.git] / datapath / linux-2.6 / compat-2.6 / include / linux / netdevice.h
index e8988c9..04ebd89 100644 (file)
@@ -110,4 +110,35 @@ static inline void netdev_rx_handler_unregister(struct net_device *dev)
 }
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+#undef SET_ETHTOOL_OPS
+#define SET_ETHTOOL_OPS(netdev, ops) \
+       ( (netdev)->ethtool_ops = (struct ethtool_ops *)(ops) )
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+#define dev_get_by_name(net, name) dev_get_by_name(name)
+#define dev_get_by_index(net, ifindex) dev_get_by_index(ifindex)
+#define __dev_get_by_name(net, name) __dev_get_by_name(name)
+#define __dev_get_by_index(net, ifindex) __dev_get_by_index(ifindex)
+#define dev_get_by_index_rcu(net, ifindex) dev_get_by_index_rcu(ifindex)
+#endif
+
+#ifndef HAVE_DEV_GET_BY_INDEX_RCU
+static inline struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex)
+{
+       struct net_device *dev;
+
+       read_lock(&dev_base_lock);
+       dev = __dev_get_by_index(net, ifindex);
+       read_unlock(&dev_base_lock);
+
+       return dev;
+}
+#endif
+
+#ifndef NETIF_F_FSO
+#define NETIF_F_FSO 0
+#endif
+
 #endif