Thread (21 messages) 21 messages, 3 authors, 2012-07-04

Re: [PATCH 06/13] cfg80211: track monitor interfaces count

From: Michal Kazior <hidden>
Date: 2012-07-04 12:34:03

Johannes Berg wrote:
On Wed, 2012-07-04 at 13:26 +0200, Johannes Berg wrote:
quoted
On Wed, 2012-07-04 at 13:17 +0200, Johannes Berg wrote:
quoted
On Wed, 2012-07-04 at 13:12 +0200, Johannes Berg wrote:
quoted
Hi Michal,

A few people noticed that these patches cause deadlocks. I think the
reason is that it's not allowed to lock the device here:
quoted
  	case NETDEV_DOWN:
  		dev_hold(dev);
+		cfg80211_lock_rdev(rdev);
This causes a deadlock since the interface is set down inside mac80211
when inside a handler from cfg80211 already, or so.
I just reproduce it -- it's because we come from nl80211_del_interface()
Ok ... we don't really need to hold the rdev lock since it's all under
rtnl. Can you please confirm this is safe?

http://p.sipsolutions.net/bde4760671f3e250.txt
I guess we can remove more locking:
http://p.sipsolutions.net/8a1b875a431e72a0.txt
I can't really test it right now, but it looks good to me.


-- 
Pozdrawiam / Best regards, Michal Kazior.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help