diff options
Diffstat (limited to 'include/linux/rtnetlink.h')
-rw-r--r-- | include/linux/rtnetlink.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 2032ce2eb20b..1fdcde96eb65 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
@@ -19,10 +19,11 @@ extern int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst, | |||
19 | 19 | ||
20 | void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change, gfp_t flags); | 20 | void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change, gfp_t flags); |
21 | void rtmsg_ifinfo_newnet(int type, struct net_device *dev, unsigned int change, | 21 | void rtmsg_ifinfo_newnet(int type, struct net_device *dev, unsigned int change, |
22 | gfp_t flags, int *new_nsid); | 22 | gfp_t flags, int *new_nsid, int new_ifindex); |
23 | struct sk_buff *rtmsg_ifinfo_build_skb(int type, struct net_device *dev, | 23 | struct sk_buff *rtmsg_ifinfo_build_skb(int type, struct net_device *dev, |
24 | unsigned change, u32 event, | 24 | unsigned change, u32 event, |
25 | gfp_t flags, int *new_nsid); | 25 | gfp_t flags, int *new_nsid, |
26 | int new_ifindex); | ||
26 | void rtmsg_ifinfo_send(struct sk_buff *skb, struct net_device *dev, | 27 | void rtmsg_ifinfo_send(struct sk_buff *skb, struct net_device *dev, |
27 | gfp_t flags); | 28 | gfp_t flags); |
28 | 29 | ||
@@ -70,8 +71,7 @@ static inline bool lockdep_rtnl_is_held(void) | |||
70 | * @p: The pointer to read, prior to dereferencing | 71 | * @p: The pointer to read, prior to dereferencing |
71 | * | 72 | * |
72 | * Return the value of the specified RCU-protected pointer, but omit | 73 | * Return the value of the specified RCU-protected pointer, but omit |
73 | * both the smp_read_barrier_depends() and the READ_ONCE(), because | 74 | * the READ_ONCE(), because caller holds RTNL. |
74 | * caller holds RTNL. | ||
75 | */ | 75 | */ |
76 | #define rtnl_dereference(p) \ | 76 | #define rtnl_dereference(p) \ |
77 | rcu_dereference_protected(p, lockdep_rtnl_is_held()) | 77 | rcu_dereference_protected(p, lockdep_rtnl_is_held()) |
@@ -97,13 +97,9 @@ void rtnetlink_init(void); | |||
97 | void __rtnl_unlock(void); | 97 | void __rtnl_unlock(void); |
98 | void rtnl_kfree_skbs(struct sk_buff *head, struct sk_buff *tail); | 98 | void rtnl_kfree_skbs(struct sk_buff *head, struct sk_buff *tail); |
99 | 99 | ||
100 | #define ASSERT_RTNL() do { \ | 100 | #define ASSERT_RTNL() \ |
101 | if (unlikely(!rtnl_is_locked())) { \ | 101 | WARN_ONCE(!rtnl_is_locked(), \ |
102 | printk(KERN_ERR "RTNL: assertion failed at %s (%d)\n", \ | 102 | "RTNL: assertion failed at %s (%d)\n", __FILE__, __LINE__) |
103 | __FILE__, __LINE__); \ | ||
104 | dump_stack(); \ | ||
105 | } \ | ||
106 | } while(0) | ||
107 | 103 | ||
108 | extern int ndo_dflt_fdb_dump(struct sk_buff *skb, | 104 | extern int ndo_dflt_fdb_dump(struct sk_buff *skb, |
109 | struct netlink_callback *cb, | 105 | struct netlink_callback *cb, |