Re: [PATCH] cfg80211: hold reg_mutex when updating regulatory
From: Luis R. Rodriguez <hidden>
Date: 2011-07-25 20:22:08
On Fri, Jul 22, 2011 at 1:37 PM, Sven Neumann [off-list ref] wrote:
Hi, On Fri, 2011-07-15 at 13:32 -0400, John W. Linville wrote:quoted
Luis, any comment on this? On Tue, Jul 12, 2011 at 09:52:39AM +0200, Sven Neumann wrote:quoted
The function wiphy_update_regulatory() uses the static variable last_request and thus needs to be called with reg_mutex held. This is the case for all users in reg.c, but the function was exported for use by wiphy_register(), from where it is called without the lock being held. Fix this by making wiphy_update_regulatory() private and introducing regulatory_update() as a wrapper that acquires and holds the lock. Signed-off-by: Sven Neumann <redacted>I'd appreciate if someone would review this patch. But probably this is not really an issue except that it's somewhat ugly to export a function that should be called with a lock held and that lock is actually private. But in this particular case it is not a problem, as far as I can see, since the only user of wiphy_update_regulatory() outside net/wireless/reg.c is initialization code. So there is not likely going to be a race condition here.
Apologies for the delay and thanks for the patch. The patch seems good except for the fact that there are so many changes reflected on the patch itself and this can be avoided by splitting the work into a few more patches so that the actual code changes required are reflected cleanly in one patch. Can you perhaps split up your changes so that moves of code are just that and actual code changes are reflected elsewhere? Luis