diff --git a/[refs] b/[refs] index 3092f6ad7d56..1ffb08c07da4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d1ec3b772233826bf156284170632563790dbabf +refs/heads/master: 1536cc0d55a2820b71daf912060fe43ec15630c2 diff --git a/trunk/net/core/rtnetlink.c b/trunk/net/core/rtnetlink.c index 739fbad15c6a..471d2d9f8eae 100644 --- a/trunk/net/core/rtnetlink.c +++ b/trunk/net/core/rtnetlink.c @@ -75,8 +75,6 @@ void __rtnl_unlock(void) void rtnl_unlock(void) { mutex_unlock(&rtnl_mutex); - if (rtnl && rtnl->sk_receive_queue.qlen) - rtnl->sk_data_ready(rtnl, 0); netdev_run_todo(); } @@ -1319,11 +1317,9 @@ static void rtnetlink_rcv(struct sock *sk, int len) unsigned int qlen = 0; do { - mutex_lock(&rtnl_mutex); + rtnl_lock(); qlen = netlink_run_queue(sk, qlen, &rtnetlink_rcv_msg); - mutex_unlock(&rtnl_mutex); - - netdev_run_todo(); + rtnl_unlock(); } while (qlen); }