datapath: Fix build with backported skb_dst().
[sliver-openvswitch.git] / datapath / linux-2.6 / compat-2.6 / include / linux / rtnetlink.h
index 4d7bd78..6602536 100644 (file)
@@ -3,9 +3,11 @@
 
 #include_next <linux/rtnetlink.h>
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-static inline void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid,
-                             u32 group, struct nlmsghdr *nlh, gfp_t flags)
+static inline void rtnl_notify(struct sk_buff *skb, u32 pid, u32 group,
+                              struct nlmsghdr *nlh, gfp_t flags)
 {
        BUG_ON(nlh);            /* not implemented */
        if (group) {
@@ -14,20 +16,34 @@ static inline void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid,
        }
 }
 
-static inline void rtnl_set_sk_err(struct net *net, u32 group, int error)
+static inline void rtnl_set_sk_err(u32 group, int error)
 {
        netlink_set_err(rtnl, 0, group, error);
 }
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+#endif
+
 /* No 'net' parameter in these versions. */
 #define rtnl_notify(skb, net, pid, group, nlh, flags) \
-       ((void) (net), (void) rtnl_notify(skb, pid, group, nlh, flags))
+                   ((void) rtnl_notify(skb, pid, group, nlh, flags))
 #define rtnl_set_sk_err(net, group, error) \
-       ((void) (net), rtnl_set_sk_err(group, error))
+                       (rtnl_set_sk_err(group, error))
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
 /* Make the return type effectively 'void' to match Linux 2.6.30+. */
 #define rtnl_notify(skb, net, pid, group, nlh, flags) \
        ((void) rtnl_notify(skb, net, pid, group, nlh, flags))
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+static inline int rtnl_is_locked(void)
+{
+       if (unlikely(rtnl_trylock())) {
+               rtnl_unlock();
+               return 0;
+       }
+
+       return 1;
+}
+
+#endif
+
 #endif /* linux/rtnetlink.h wrapper */