X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Flinux-2.6%2Fcompat-2.6%2Finclude%2Flinux%2Frtnetlink.h;h=66025361f5620ec9a9744b8571a8db82f3086633;hb=85444c3f79f594c838d4b3e72ff27e263514f194;hp=4d7bd784b588096f75b857600573a60fd1393d2e;hpb=00908dc27a4d93bd1c5bda3bcdc84ec351e9a09a;p=openvswitch diff --git a/datapath/linux-2.6/compat-2.6/include/linux/rtnetlink.h b/datapath/linux-2.6/compat-2.6/include/linux/rtnetlink.h index 4d7bd784..66025361 100644 --- a/datapath/linux-2.6/compat-2.6/include/linux/rtnetlink.h +++ b/datapath/linux-2.6/compat-2.6/include/linux/rtnetlink.h @@ -3,9 +3,11 @@ #include_next +#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 */