diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 29c3a75a7ad0..7e720133358c 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2078,8 +2078,17 @@ static enum work_done_result ieee80211_assoc_done(struct ieee80211_work *wk, | |||
2078 | cfg80211_send_assoc_timeout(wk->sdata->dev, | 2078 | cfg80211_send_assoc_timeout(wk->sdata->dev, |
2079 | wk->filter_ta); | 2079 | wk->filter_ta); |
2080 | return WORK_DONE_DESTROY; | 2080 | return WORK_DONE_DESTROY; |
2081 | } else { | ||
2082 | mutex_unlock(&wk->sdata->u.mgd.mtx); | ||
2083 | |||
2084 | /* | ||
2085 | * configure ARP filter IP addresses to the driver, | ||
2086 | * intentionally outside the mgd mutex. | ||
2087 | */ | ||
2088 | rtnl_lock(); | ||
2089 | ieee80211_set_arp_filter(wk->sdata); | ||
2090 | rtnl_unlock(); | ||
2081 | } | 2091 | } |
2082 | mutex_unlock(&wk->sdata->u.mgd.mtx); | ||
2083 | } | 2092 | } |
2084 | 2093 | ||
2085 | cfg80211_send_rx_assoc(wk->sdata->dev, skb->data, skb->len); | 2094 | cfg80211_send_rx_assoc(wk->sdata->dev, skb->data, skb->len); |