diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/core/rtnetlink.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 739fbad15c6a..471d2d9f8eae 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -75,8 +75,6 @@ void __rtnl_unlock(void) | |||
75 | void rtnl_unlock(void) | 75 | void rtnl_unlock(void) |
76 | { | 76 | { |
77 | mutex_unlock(&rtnl_mutex); | 77 | mutex_unlock(&rtnl_mutex); |
78 | if (rtnl && rtnl->sk_receive_queue.qlen) | ||
79 | rtnl->sk_data_ready(rtnl, 0); | ||
80 | netdev_run_todo(); | 78 | netdev_run_todo(); |
81 | } | 79 | } |
82 | 80 | ||
@@ -1319,11 +1317,9 @@ static void rtnetlink_rcv(struct sock *sk, int len) | |||
1319 | unsigned int qlen = 0; | 1317 | unsigned int qlen = 0; |
1320 | 1318 | ||
1321 | do { | 1319 | do { |
1322 | mutex_lock(&rtnl_mutex); | 1320 | rtnl_lock(); |
1323 | qlen = netlink_run_queue(sk, qlen, &rtnetlink_rcv_msg); | 1321 | qlen = netlink_run_queue(sk, qlen, &rtnetlink_rcv_msg); |
1324 | mutex_unlock(&rtnl_mutex); | 1322 | rtnl_unlock(); |
1325 | |||
1326 | netdev_run_todo(); | ||
1327 | } while (qlen); | 1323 | } while (qlen); |
1328 | } | 1324 | } |
1329 | 1325 | ||