aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 5e25d320deae..383392b04282 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -419,9 +419,11 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
419 mgmt->u.deauth.reason_code = cpu_to_le16(reason); 419 mgmt->u.deauth.reason_code = cpu_to_le16(reason);
420 420
421 if (stype == IEEE80211_STYPE_DEAUTH) 421 if (stype == IEEE80211_STYPE_DEAUTH)
422 cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, skb->len); 422 cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, skb->len,
423 GFP_KERNEL);
423 else 424 else
424 cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, skb->len); 425 cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, skb->len,
426 GFP_KERNEL);
425 ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED); 427 ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED);
426} 428}
427 429
@@ -1006,7 +1008,8 @@ static void ieee80211_direct_probe(struct ieee80211_sub_if_data *sdata)
1006 sdata->dev->name, ifmgd->bssid); 1008 sdata->dev->name, ifmgd->bssid);
1007 ifmgd->state = IEEE80211_STA_MLME_DISABLED; 1009 ifmgd->state = IEEE80211_STA_MLME_DISABLED;
1008 ieee80211_recalc_idle(local); 1010 ieee80211_recalc_idle(local);
1009 cfg80211_send_auth_timeout(sdata->dev, ifmgd->bssid); 1011 cfg80211_send_auth_timeout(sdata->dev, ifmgd->bssid,
1012 GFP_KERNEL);
1010 1013
1011 /* 1014 /*
1012 * Most likely AP is not in the range so remove the 1015 * Most likely AP is not in the range so remove the
@@ -1055,7 +1058,8 @@ static void ieee80211_authenticate(struct ieee80211_sub_if_data *sdata)
1055 sdata->dev->name, ifmgd->bssid); 1058 sdata->dev->name, ifmgd->bssid);
1056 ifmgd->state = IEEE80211_STA_MLME_DISABLED; 1059 ifmgd->state = IEEE80211_STA_MLME_DISABLED;
1057 ieee80211_recalc_idle(local); 1060 ieee80211_recalc_idle(local);
1058 cfg80211_send_auth_timeout(sdata->dev, ifmgd->bssid); 1061 cfg80211_send_auth_timeout(sdata->dev, ifmgd->bssid,
1062 GFP_KERNEL);
1059 ieee80211_rx_bss_remove(sdata, ifmgd->bssid, 1063 ieee80211_rx_bss_remove(sdata, ifmgd->bssid,
1060 sdata->local->hw.conf.channel->center_freq, 1064 sdata->local->hw.conf.channel->center_freq,
1061 ifmgd->ssid, ifmgd->ssid_len); 1065 ifmgd->ssid, ifmgd->ssid_len);
@@ -1243,7 +1247,8 @@ static void ieee80211_associate(struct ieee80211_sub_if_data *sdata)
1243 sdata->dev->name, ifmgd->bssid); 1247 sdata->dev->name, ifmgd->bssid);
1244 ifmgd->state = IEEE80211_STA_MLME_DISABLED; 1248 ifmgd->state = IEEE80211_STA_MLME_DISABLED;
1245 ieee80211_recalc_idle(local); 1249 ieee80211_recalc_idle(local);
1246 cfg80211_send_assoc_timeout(sdata->dev, ifmgd->bssid); 1250 cfg80211_send_assoc_timeout(sdata->dev, ifmgd->bssid,
1251 GFP_KERNEL);
1247 ieee80211_rx_bss_remove(sdata, ifmgd->bssid, 1252 ieee80211_rx_bss_remove(sdata, ifmgd->bssid,
1248 sdata->local->hw.conf.channel->center_freq, 1253 sdata->local->hw.conf.channel->center_freq,
1249 ifmgd->ssid, ifmgd->ssid_len); 1254 ifmgd->ssid, ifmgd->ssid_len);
@@ -1517,12 +1522,14 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
1517 case WLAN_AUTH_LEAP: 1522 case WLAN_AUTH_LEAP:
1518 case WLAN_AUTH_FT: 1523 case WLAN_AUTH_FT:
1519 ieee80211_auth_completed(sdata); 1524 ieee80211_auth_completed(sdata);
1520 cfg80211_send_rx_auth(sdata->dev, (u8 *) mgmt, len); 1525 cfg80211_send_rx_auth(sdata->dev, (u8 *) mgmt, len,
1526 GFP_KERNEL);
1521 break; 1527 break;
1522 case WLAN_AUTH_SHARED_KEY: 1528 case WLAN_AUTH_SHARED_KEY:
1523 if (ifmgd->auth_transaction == 4) { 1529 if (ifmgd->auth_transaction == 4) {
1524 ieee80211_auth_completed(sdata); 1530 ieee80211_auth_completed(sdata);
1525 cfg80211_send_rx_auth(sdata->dev, (u8 *) mgmt, len); 1531 cfg80211_send_rx_auth(sdata->dev, (u8 *) mgmt, len,
1532 GFP_KERNEL);
1526 } else 1533 } else
1527 ieee80211_auth_challenge(sdata, mgmt, len); 1534 ieee80211_auth_challenge(sdata, mgmt, len);
1528 break; 1535 break;
@@ -1560,7 +1567,7 @@ static void ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata,
1560 1567
1561 ieee80211_set_disassoc(sdata, true, false, 0); 1568 ieee80211_set_disassoc(sdata, true, false, 0);
1562 ifmgd->flags &= ~IEEE80211_STA_AUTHENTICATED; 1569 ifmgd->flags &= ~IEEE80211_STA_AUTHENTICATED;
1563 cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, len); 1570 cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, len, GFP_KERNEL);
1564} 1571}
1565 1572
1566 1573
@@ -1591,7 +1598,7 @@ static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,
1591 } 1598 }
1592 1599
1593 ieee80211_set_disassoc(sdata, false, false, reason_code); 1600 ieee80211_set_disassoc(sdata, false, false, reason_code);
1594 cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, len); 1601 cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, len, GFP_KERNEL);
1595} 1602}
1596 1603
1597 1604
@@ -1660,7 +1667,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1660 * association next time. This works around some broken APs 1667 * association next time. This works around some broken APs
1661 * which do not correctly reject reassociation requests. */ 1668 * which do not correctly reject reassociation requests. */
1662 ifmgd->flags &= ~IEEE80211_STA_PREV_BSSID_SET; 1669 ifmgd->flags &= ~IEEE80211_STA_PREV_BSSID_SET;
1663 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, len); 1670 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, len,
1671 GFP_KERNEL);
1664 if (ifmgd->flags & IEEE80211_STA_EXT_SME) { 1672 if (ifmgd->flags & IEEE80211_STA_EXT_SME) {
1665 /* Wait for SME to decide what to do next */ 1673 /* Wait for SME to decide what to do next */
1666 ifmgd->state = IEEE80211_STA_MLME_DISABLED; 1674 ifmgd->state = IEEE80211_STA_MLME_DISABLED;
@@ -1823,7 +1831,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1823 ifmgd->last_beacon = jiffies; 1831 ifmgd->last_beacon = jiffies;
1824 1832
1825 ieee80211_associated(sdata); 1833 ieee80211_associated(sdata);
1826 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, len); 1834 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, len, GFP_KERNEL);
1827} 1835}
1828 1836
1829 1837