diff options
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r-- | net/core/rtnetlink.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 471d2d9f8ea..1072d16696c 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -1312,15 +1312,11 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
1312 | return doit(skb, nlh, (void *)&rta_buf[0]); | 1312 | return doit(skb, nlh, (void *)&rta_buf[0]); |
1313 | } | 1313 | } |
1314 | 1314 | ||
1315 | static void rtnetlink_rcv(struct sock *sk, int len) | 1315 | static void rtnetlink_rcv(struct sk_buff *skb) |
1316 | { | 1316 | { |
1317 | unsigned int qlen = 0; | 1317 | rtnl_lock(); |
1318 | 1318 | netlink_rcv_skb(skb, &rtnetlink_rcv_msg); | |
1319 | do { | 1319 | rtnl_unlock(); |
1320 | rtnl_lock(); | ||
1321 | qlen = netlink_run_queue(sk, qlen, &rtnetlink_rcv_msg); | ||
1322 | rtnl_unlock(); | ||
1323 | } while (qlen); | ||
1324 | } | 1320 | } |
1325 | 1321 | ||
1326 | static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) | 1322 | static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) |