clarify locking comment in cfg80211
Subsystems (3)
PATCH 1/1 clarify locking comment in cfg80211
From: Johannes Berg <[email protected]>
This patch clarifies the comment about locking in wiphy_unregister.
Signed-off-by Johannes Berg <[email protected]>
Signed-off-by John W. Linville <[email protected]>
---
I applied this after the "fix locking in wiphy_new" patch, but I don't think the order really matters.
net/wireless/core.c | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-)
net/wireless/core.c +15 -4
@@ -91,7 +91,6 @@ int wiphy_register(struct wiphy *wiphy)mutex_lock (&cfg80211_drv_mutex); - res =device_add (&drv->wiphy.dev);if (res) goto out_unlock;
@@ -114,14 +113,26 @@ void wiphy_unregister(struct wiphy *wiphy) {struct cfg80211_registered_device *drv =wiphy_to_dev (wiphy); +/* protect the device list */ mutex_lock (&cfg80211_drv_mutex); -/* hold registered driver mutex during list removal as well -* to make sure no commands are in progress at the moment */ +BUG_ON (!list_empty (&drv->netdev_list)); + +/* +* Try to grab drv->mtx. If a command is still in progress, +* hopefully the driver will refuse it since it's tearing +* down the device already. We wait for this command to complete +* before unlinking the item from the list. +* Note: as codified by the BUG_ON above we cannot get here if +* a virtual interface is still associated. Hence, we can only +* get to lock contention here if userspace issues a command +* that identified the hardware by wiphy index. +*/ mutex_lock (&drv->mtx); -list_del (&drv->list); +/* unlock again before freeing */ mutex_unlock (&drv->mtx); +list_del (&drv->list);device_del (&drv->wiphy.dev);debugfs_remove (drv->wiphy.debugfsdir);
Signature · 5 lines
1.5.0.6 -- John W. Linville [email protected]
David Miller
maintainerFrom: "John W. Linville" <[email protected]>
Date: Thu, 26 Apr 2007 21:50:55 -0400
Quoted 6 lines
From: Johannes Berg <[email protected]>
This patch clarifies the comment about locking in
wiphy_unregister.Signed-off-by Johannes Berg <[email protected]>Signed-off-by John W. Linville <[email protected]>
Also applied, thanks.