Message ID | 1306925737-1782-1-git-send-email-sjur.brandeland@stericsson.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Sjur Brændeland <sjur.brandeland@stericsson.com> Date: Wed, 1 Jun 2011 12:55:37 +0200 > Take the RTNL lock unconditionally when calling dev_close. > Taking the lock conditionally may cause race conditions. > > Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c index 649ebac..adbb424 100644 --- a/net/caif/chnl_net.c +++ b/net/caif/chnl_net.c @@ -139,17 +139,14 @@ static void close_work(struct work_struct *work) struct chnl_net *dev = NULL; struct list_head *list_node; struct list_head *_tmp; - /* May be called with or without RTNL lock held */ - int islocked = rtnl_is_locked(); - if (!islocked) - rtnl_lock(); + + rtnl_lock(); list_for_each_safe(list_node, _tmp, &chnl_net_list) { dev = list_entry(list_node, struct chnl_net, list_field); if (dev->state == CAIF_SHUTDOWN) dev_close(dev->netdev); } - if (!islocked) - rtnl_unlock(); + rtnl_unlock(); } static DECLARE_WORK(close_worker, close_work);
Take the RTNL lock unconditionally when calling dev_close. Taking the lock conditionally may cause race conditions. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> --- net/caif/chnl_net.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-)