mac80211: fix rcu locking
authorJohannes Berg <johannes@sipsolutions.net>
Fri, 20 Nov 2009 09:09:14 +0000 (10:09 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 23 Nov 2009 22:05:29 +0000 (17:05 -0500)
Add a missing rcu_read_unlock() before jumping out
of the ieee80211_change_station() function in the
error case.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/cfg.c

index c484a882140ed7db639312acdce49a2431347ed8..93ee1fd5c08dd6674152072e9045c48cb0863663 100644 (file)
@@ -823,8 +823,10 @@ static int ieee80211_change_station(struct wiphy *wiphy,
                }
 
                if (params->vlan->ieee80211_ptr->use_4addr) {
-                       if (vlansdata->u.vlan.sta)
+                       if (vlansdata->u.vlan.sta) {
+                               rcu_read_unlock();
                                return -EBUSY;
+                       }
 
                        rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
                }