diff options
Diffstat (limited to 'net/ipv4/fib_semantics.c')
| -rw-r--r-- | net/ipv4/fib_semantics.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index e278cb9d0075..d41219e8037c 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c | |||
| @@ -290,10 +290,10 @@ void rtmsg_fib(int event, u32 key, struct fib_alias *fa, | |||
| 290 | kfree_skb(skb); | 290 | kfree_skb(skb); |
| 291 | return; | 291 | return; |
| 292 | } | 292 | } |
| 293 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV4_ROUTE; | 293 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV4_ROUTE; |
| 294 | if (n->nlmsg_flags&NLM_F_ECHO) | 294 | if (n->nlmsg_flags&NLM_F_ECHO) |
| 295 | atomic_inc(&skb->users); | 295 | atomic_inc(&skb->users); |
| 296 | netlink_broadcast(rtnl, skb, pid, RTMGRP_IPV4_ROUTE, GFP_KERNEL); | 296 | netlink_broadcast(rtnl, skb, pid, RTNLGRP_IPV4_ROUTE, GFP_KERNEL); |
| 297 | if (n->nlmsg_flags&NLM_F_ECHO) | 297 | if (n->nlmsg_flags&NLM_F_ECHO) |
| 298 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); | 298 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); |
| 299 | } | 299 | } |
| @@ -854,6 +854,7 @@ failure: | |||
| 854 | return NULL; | 854 | return NULL; |
| 855 | } | 855 | } |
| 856 | 856 | ||
| 857 | /* Note! fib_semantic_match intentionally uses RCU list functions. */ | ||
| 857 | int fib_semantic_match(struct list_head *head, const struct flowi *flp, | 858 | int fib_semantic_match(struct list_head *head, const struct flowi *flp, |
| 858 | struct fib_result *res, __u32 zone, __u32 mask, | 859 | struct fib_result *res, __u32 zone, __u32 mask, |
| 859 | int prefixlen) | 860 | int prefixlen) |
| @@ -861,7 +862,7 @@ int fib_semantic_match(struct list_head *head, const struct flowi *flp, | |||
| 861 | struct fib_alias *fa; | 862 | struct fib_alias *fa; |
| 862 | int nh_sel = 0; | 863 | int nh_sel = 0; |
| 863 | 864 | ||
| 864 | list_for_each_entry(fa, head, fa_list) { | 865 | list_for_each_entry_rcu(fa, head, fa_list) { |
| 865 | int err; | 866 | int err; |
| 866 | 867 | ||
| 867 | if (fa->fa_tos && | 868 | if (fa->fa_tos && |
