diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index c484a882140ed7db639312acdce49a2431347ed8..93ee1fd5c08dd6674152072e9045c48cb0863663 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -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);
 		}