mac80211: fix rcu locking
Johannes Berg [Fri, 20 Nov 2009 09:09:14 +0000 (10:09 +0100)]
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 c484a88..93ee1fd 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);
                }