compat: Identify existence of netdev_notifier_info_to_dev
[compat-rdma/compat.git] / include / linux / netdevice.h
index fa33d67..261ced8 100644 (file)
 #define netdev_master_upper_dev_get_rcu(x) (x)->master
 #endif
 
+#ifndef HAVE_NETIF_KEEP_DST
+/* This device needs to keep skb dst for qdisc enqueue or ndo_start_xmit() */
+static inline void netif_keep_dst(struct net_device *dev)
+{
+       /* IFF_XMIT_DST_RELEASE_PERM   = 1<<17 */
+       dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | (1<<17) );
+}
+#endif
+
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 18)
 #ifdef HAVE_ALLOC_ETHERDEV_MQ
 #ifndef HAVE_NETIF_SET_REAL_NUM_TX_QUEUES
@@ -99,4 +108,18 @@ static inline void netif_trans_update(struct net_device *dev)
 }
 #endif
 
+#ifdef HAVE_REGISTER_NETDEVICE_NOTIFIER_RH
+#define register_netdevice_notifier register_netdevice_notifier_rh
+#define unregister_netdevice_notifier unregister_netdevice_notifier_rh
+#endif
+
+#ifndef HAVE_NETDEV_NOTIFIER_INFO_TO_DEV
+#define netdev_notifier_info_to_dev LINUX_BACKPORT(netdev_notifier_info_to_dev)
+static inline struct net_device *
+netdev_notifier_info_to_dev(void *ptr)
+{
+       return (struct net_device *)ptr;
+}
+#endif
+
 #endif /* _COMPAT_LINUX_NETDEVICE_H */