aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-11-25 11:46:19 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-21 18:38:52 -0500
commit47846c9b0c10808d9337d2e7d09361f3e0a0a71a (patch)
tree8e5d0dbf3309b7868fa73a888f9561ffea1580e3 /net/mac80211/mlme.c
parentabe60632f311d515b082b450504ee24006023951 (diff)
mac80211: reduce reliance on netdev
For bluetooth 3, we will most likely not have a netdev for a virtual interface (sdata), so prepare for that by reducing the reliance on having a netdev. This patch moves the name and address fields into the sdata struct and uses them from there all over. Some work is needed to keep them sync'ed, but that's not a lot of work and in slow paths anyway. In doing so, this also reduces the number of pointer dereferences in many places, because of things like sdata->dev->dev_addr becoming sdata->vif.addr. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c62
1 files changed, 31 insertions, 31 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c16667a7c8df..cd5dcc3d8c2b 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -248,7 +248,7 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata,
248 wk->ssid_len); 248 wk->ssid_len);
249 if (!skb) { 249 if (!skb) {
250 printk(KERN_DEBUG "%s: failed to allocate buffer for assoc " 250 printk(KERN_DEBUG "%s: failed to allocate buffer for assoc "
251 "frame\n", sdata->dev->name); 251 "frame\n", sdata->name);
252 return; 252 return;
253 } 253 }
254 skb_reserve(skb, local->hw.extra_tx_headroom); 254 skb_reserve(skb, local->hw.extra_tx_headroom);
@@ -282,7 +282,7 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata,
282 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 282 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24);
283 memset(mgmt, 0, 24); 283 memset(mgmt, 0, 24);
284 memcpy(mgmt->da, wk->bss->cbss.bssid, ETH_ALEN); 284 memcpy(mgmt->da, wk->bss->cbss.bssid, ETH_ALEN);
285 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); 285 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
286 memcpy(mgmt->bssid, wk->bss->cbss.bssid, ETH_ALEN); 286 memcpy(mgmt->bssid, wk->bss->cbss.bssid, ETH_ALEN);
287 287
288 if (!is_zero_ether_addr(wk->prev_bssid)) { 288 if (!is_zero_ether_addr(wk->prev_bssid)) {
@@ -443,7 +443,7 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
443 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*mgmt)); 443 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*mgmt));
444 if (!skb) { 444 if (!skb) {
445 printk(KERN_DEBUG "%s: failed to allocate buffer for " 445 printk(KERN_DEBUG "%s: failed to allocate buffer for "
446 "deauth/disassoc frame\n", sdata->dev->name); 446 "deauth/disassoc frame\n", sdata->name);
447 return; 447 return;
448 } 448 }
449 skb_reserve(skb, local->hw.extra_tx_headroom); 449 skb_reserve(skb, local->hw.extra_tx_headroom);
@@ -451,7 +451,7 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
451 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 451 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24);
452 memset(mgmt, 0, 24); 452 memset(mgmt, 0, 24);
453 memcpy(mgmt->da, bssid, ETH_ALEN); 453 memcpy(mgmt->da, bssid, ETH_ALEN);
454 memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); 454 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
455 memcpy(mgmt->bssid, bssid, ETH_ALEN); 455 memcpy(mgmt->bssid, bssid, ETH_ALEN);
456 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | stype); 456 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | stype);
457 skb_put(skb, 2); 457 skb_put(skb, 2);
@@ -484,7 +484,7 @@ void ieee80211_send_pspoll(struct ieee80211_local *local,
484 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*pspoll)); 484 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*pspoll));
485 if (!skb) { 485 if (!skb) {
486 printk(KERN_DEBUG "%s: failed to allocate buffer for " 486 printk(KERN_DEBUG "%s: failed to allocate buffer for "
487 "pspoll frame\n", sdata->dev->name); 487 "pspoll frame\n", sdata->name);
488 return; 488 return;
489 } 489 }
490 skb_reserve(skb, local->hw.extra_tx_headroom); 490 skb_reserve(skb, local->hw.extra_tx_headroom);
@@ -499,7 +499,7 @@ void ieee80211_send_pspoll(struct ieee80211_local *local,
499 pspoll->aid |= cpu_to_le16(1 << 15 | 1 << 14); 499 pspoll->aid |= cpu_to_le16(1 << 15 | 1 << 14);
500 500
501 memcpy(pspoll->bssid, ifmgd->bssid, ETH_ALEN); 501 memcpy(pspoll->bssid, ifmgd->bssid, ETH_ALEN);
502 memcpy(pspoll->ta, sdata->dev->dev_addr, ETH_ALEN); 502 memcpy(pspoll->ta, sdata->vif.addr, ETH_ALEN);
503 503
504 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; 504 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT;
505 ieee80211_tx_skb(sdata, skb); 505 ieee80211_tx_skb(sdata, skb);
@@ -519,7 +519,7 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local,
519 skb = dev_alloc_skb(local->hw.extra_tx_headroom + 24); 519 skb = dev_alloc_skb(local->hw.extra_tx_headroom + 24);
520 if (!skb) { 520 if (!skb) {
521 printk(KERN_DEBUG "%s: failed to allocate buffer for nullfunc " 521 printk(KERN_DEBUG "%s: failed to allocate buffer for nullfunc "
522 "frame\n", sdata->dev->name); 522 "frame\n", sdata->name);
523 return; 523 return;
524 } 524 }
525 skb_reserve(skb, local->hw.extra_tx_headroom); 525 skb_reserve(skb, local->hw.extra_tx_headroom);
@@ -532,7 +532,7 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local,
532 fc |= cpu_to_le16(IEEE80211_FCTL_PM); 532 fc |= cpu_to_le16(IEEE80211_FCTL_PM);
533 nullfunc->frame_control = fc; 533 nullfunc->frame_control = fc;
534 memcpy(nullfunc->addr1, sdata->u.mgd.bssid, ETH_ALEN); 534 memcpy(nullfunc->addr1, sdata->u.mgd.bssid, ETH_ALEN);
535 memcpy(nullfunc->addr2, sdata->dev->dev_addr, ETH_ALEN); 535 memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN);
536 memcpy(nullfunc->addr3, sdata->u.mgd.bssid, ETH_ALEN); 536 memcpy(nullfunc->addr3, sdata->u.mgd.bssid, ETH_ALEN);
537 537
538 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; 538 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT;
@@ -948,7 +948,7 @@ ieee80211_direct_probe(struct ieee80211_sub_if_data *sdata,
948 wk->tries++; 948 wk->tries++;
949 if (wk->tries > IEEE80211_AUTH_MAX_TRIES) { 949 if (wk->tries > IEEE80211_AUTH_MAX_TRIES) {
950 printk(KERN_DEBUG "%s: direct probe to AP %pM timed out\n", 950 printk(KERN_DEBUG "%s: direct probe to AP %pM timed out\n",
951 sdata->dev->name, wk->bss->cbss.bssid); 951 sdata->name, wk->bss->cbss.bssid);
952 952
953 /* 953 /*
954 * Most likely AP is not in the range so remove the 954 * Most likely AP is not in the range so remove the
@@ -966,7 +966,7 @@ ieee80211_direct_probe(struct ieee80211_sub_if_data *sdata,
966 } 966 }
967 967
968 printk(KERN_DEBUG "%s: direct probe to AP %pM (try %d)\n", 968 printk(KERN_DEBUG "%s: direct probe to AP %pM (try %d)\n",
969 sdata->dev->name, wk->bss->cbss.bssid, 969 sdata->name, wk->bss->cbss.bssid,
970 wk->tries); 970 wk->tries);
971 971
972 /* 972 /*
@@ -993,7 +993,7 @@ ieee80211_authenticate(struct ieee80211_sub_if_data *sdata,
993 if (wk->tries > IEEE80211_AUTH_MAX_TRIES) { 993 if (wk->tries > IEEE80211_AUTH_MAX_TRIES) {
994 printk(KERN_DEBUG "%s: authentication with AP %pM" 994 printk(KERN_DEBUG "%s: authentication with AP %pM"
995 " timed out\n", 995 " timed out\n",
996 sdata->dev->name, wk->bss->cbss.bssid); 996 sdata->name, wk->bss->cbss.bssid);
997 997
998 /* 998 /*
999 * Most likely AP is not in the range so remove the 999 * Most likely AP is not in the range so remove the
@@ -1011,7 +1011,7 @@ ieee80211_authenticate(struct ieee80211_sub_if_data *sdata,
1011 } 1011 }
1012 1012
1013 printk(KERN_DEBUG "%s: authenticate with AP %pM (try %d)\n", 1013 printk(KERN_DEBUG "%s: authenticate with AP %pM (try %d)\n",
1014 sdata->dev->name, wk->bss->cbss.bssid, wk->tries); 1014 sdata->name, wk->bss->cbss.bssid, wk->tries);
1015 1015
1016 ieee80211_send_auth(sdata, 1, wk->auth_alg, wk->ie, wk->ie_len, 1016 ieee80211_send_auth(sdata, 1, wk->auth_alg, wk->ie, wk->ie_len,
1017 wk->bss->cbss.bssid, NULL, 0, 0); 1017 wk->bss->cbss.bssid, NULL, 0, 0);
@@ -1133,7 +1133,7 @@ ieee80211_associate(struct ieee80211_sub_if_data *sdata,
1133 if (wk->tries > IEEE80211_ASSOC_MAX_TRIES) { 1133 if (wk->tries > IEEE80211_ASSOC_MAX_TRIES) {
1134 printk(KERN_DEBUG "%s: association with AP %pM" 1134 printk(KERN_DEBUG "%s: association with AP %pM"
1135 " timed out\n", 1135 " timed out\n",
1136 sdata->dev->name, wk->bss->cbss.bssid); 1136 sdata->name, wk->bss->cbss.bssid);
1137 1137
1138 /* 1138 /*
1139 * Most likely AP is not in the range so remove the 1139 * Most likely AP is not in the range so remove the
@@ -1151,7 +1151,7 @@ ieee80211_associate(struct ieee80211_sub_if_data *sdata,
1151 } 1151 }
1152 1152
1153 printk(KERN_DEBUG "%s: associate with AP %pM (try %d)\n", 1153 printk(KERN_DEBUG "%s: associate with AP %pM (try %d)\n",
1154 sdata->dev->name, wk->bss->cbss.bssid, wk->tries); 1154 sdata->name, wk->bss->cbss.bssid, wk->tries);
1155 ieee80211_send_assoc(sdata, wk); 1155 ieee80211_send_assoc(sdata, wk);
1156 1156
1157 wk->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT; 1157 wk->timeout = jiffies + IEEE80211_ASSOC_TIMEOUT;
@@ -1212,7 +1212,7 @@ static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata,
1212#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 1212#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
1213 if (beacon && net_ratelimit()) 1213 if (beacon && net_ratelimit())
1214 printk(KERN_DEBUG "%s: detected beacon loss from AP " 1214 printk(KERN_DEBUG "%s: detected beacon loss from AP "
1215 "- sending probe request\n", sdata->dev->name); 1215 "- sending probe request\n", sdata->name);
1216#endif 1216#endif
1217 1217
1218 /* 1218 /*
@@ -1269,7 +1269,7 @@ static void ieee80211_auth_completed(struct ieee80211_sub_if_data *sdata,
1269 struct ieee80211_mgd_work *wk) 1269 struct ieee80211_mgd_work *wk)
1270{ 1270{
1271 wk->state = IEEE80211_MGD_STATE_IDLE; 1271 wk->state = IEEE80211_MGD_STATE_IDLE;
1272 printk(KERN_DEBUG "%s: authenticated\n", sdata->dev->name); 1272 printk(KERN_DEBUG "%s: authenticated\n", sdata->name);
1273} 1273}
1274 1274
1275 1275
@@ -1366,7 +1366,7 @@ ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata,
1366 reason_code = le16_to_cpu(mgmt->u.deauth.reason_code); 1366 reason_code = le16_to_cpu(mgmt->u.deauth.reason_code);
1367 1367
1368 printk(KERN_DEBUG "%s: deauthenticated from %pM (Reason: %u)\n", 1368 printk(KERN_DEBUG "%s: deauthenticated from %pM (Reason: %u)\n",
1369 sdata->dev->name, bssid, reason_code); 1369 sdata->name, bssid, reason_code);
1370 1370
1371 if (!wk) { 1371 if (!wk) {
1372 ieee80211_set_disassoc(sdata, true); 1372 ieee80211_set_disassoc(sdata, true);
@@ -1400,7 +1400,7 @@ ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,
1400 reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code); 1400 reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code);
1401 1401
1402 printk(KERN_DEBUG "%s: disassociated from %pM (Reason: %u)\n", 1402 printk(KERN_DEBUG "%s: disassociated from %pM (Reason: %u)\n",
1403 sdata->dev->name, mgmt->sa, reason_code); 1403 sdata->name, mgmt->sa, reason_code);
1404 1404
1405 ieee80211_set_disassoc(sdata, false); 1405 ieee80211_set_disassoc(sdata, false);
1406 return RX_MGMT_CFG80211_DISASSOC; 1406 return RX_MGMT_CFG80211_DISASSOC;
@@ -1444,7 +1444,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1444 1444
1445 printk(KERN_DEBUG "%s: RX %sssocResp from %pM (capab=0x%x " 1445 printk(KERN_DEBUG "%s: RX %sssocResp from %pM (capab=0x%x "
1446 "status=%d aid=%d)\n", 1446 "status=%d aid=%d)\n",
1447 sdata->dev->name, reassoc ? "Rea" : "A", mgmt->sa, 1447 sdata->name, reassoc ? "Rea" : "A", mgmt->sa,
1448 capab_info, status_code, (u16)(aid & ~(BIT(15) | BIT(14)))); 1448 capab_info, status_code, (u16)(aid & ~(BIT(15) | BIT(14))));
1449 1449
1450 pos = mgmt->u.assoc_resp.variable; 1450 pos = mgmt->u.assoc_resp.variable;
@@ -1458,7 +1458,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1458 ms = tu * 1024 / 1000; 1458 ms = tu * 1024 / 1000;
1459 printk(KERN_DEBUG "%s: AP rejected association temporarily; " 1459 printk(KERN_DEBUG "%s: AP rejected association temporarily; "
1460 "comeback duration %u TU (%u ms)\n", 1460 "comeback duration %u TU (%u ms)\n",
1461 sdata->dev->name, tu, ms); 1461 sdata->name, tu, ms);
1462 wk->timeout = jiffies + msecs_to_jiffies(ms); 1462 wk->timeout = jiffies + msecs_to_jiffies(ms);
1463 if (ms > IEEE80211_ASSOC_TIMEOUT) 1463 if (ms > IEEE80211_ASSOC_TIMEOUT)
1464 run_again(ifmgd, jiffies + msecs_to_jiffies(ms)); 1464 run_again(ifmgd, jiffies + msecs_to_jiffies(ms));
@@ -1467,23 +1467,23 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1467 1467
1468 if (status_code != WLAN_STATUS_SUCCESS) { 1468 if (status_code != WLAN_STATUS_SUCCESS) {
1469 printk(KERN_DEBUG "%s: AP denied association (code=%d)\n", 1469 printk(KERN_DEBUG "%s: AP denied association (code=%d)\n",
1470 sdata->dev->name, status_code); 1470 sdata->name, status_code);
1471 wk->state = IEEE80211_MGD_STATE_IDLE; 1471 wk->state = IEEE80211_MGD_STATE_IDLE;
1472 return RX_MGMT_CFG80211_ASSOC; 1472 return RX_MGMT_CFG80211_ASSOC;
1473 } 1473 }
1474 1474
1475 if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14))) 1475 if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14)))
1476 printk(KERN_DEBUG "%s: invalid aid value %d; bits 15:14 not " 1476 printk(KERN_DEBUG "%s: invalid aid value %d; bits 15:14 not "
1477 "set\n", sdata->dev->name, aid); 1477 "set\n", sdata->name, aid);
1478 aid &= ~(BIT(15) | BIT(14)); 1478 aid &= ~(BIT(15) | BIT(14));
1479 1479
1480 if (!elems.supp_rates) { 1480 if (!elems.supp_rates) {
1481 printk(KERN_DEBUG "%s: no SuppRates element in AssocResp\n", 1481 printk(KERN_DEBUG "%s: no SuppRates element in AssocResp\n",
1482 sdata->dev->name); 1482 sdata->name);
1483 return RX_MGMT_NONE; 1483 return RX_MGMT_NONE;
1484 } 1484 }
1485 1485
1486 printk(KERN_DEBUG "%s: associated\n", sdata->dev->name); 1486 printk(KERN_DEBUG "%s: associated\n", sdata->name);
1487 ifmgd->aid = aid; 1487 ifmgd->aid = aid;
1488 1488
1489 rcu_read_lock(); 1489 rcu_read_lock();
@@ -1498,7 +1498,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1498 sta = sta_info_alloc(sdata, wk->bss->cbss.bssid, GFP_KERNEL); 1498 sta = sta_info_alloc(sdata, wk->bss->cbss.bssid, GFP_KERNEL);
1499 if (!sta) { 1499 if (!sta) {
1500 printk(KERN_DEBUG "%s: failed to alloc STA entry for" 1500 printk(KERN_DEBUG "%s: failed to alloc STA entry for"
1501 " the AP\n", sdata->dev->name); 1501 " the AP\n", sdata->name);
1502 return RX_MGMT_NONE; 1502 return RX_MGMT_NONE;
1503 } 1503 }
1504 1504
@@ -1576,7 +1576,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
1576 int err = sta_info_insert(sta); 1576 int err = sta_info_insert(sta);
1577 if (err) { 1577 if (err) {
1578 printk(KERN_DEBUG "%s: failed to insert STA entry for" 1578 printk(KERN_DEBUG "%s: failed to insert STA entry for"
1579 " the AP (error %d)\n", sdata->dev->name, err); 1579 " the AP (error %d)\n", sdata->name, err);
1580 rcu_read_unlock(); 1580 rcu_read_unlock();
1581 return RX_MGMT_NONE; 1581 return RX_MGMT_NONE;
1582 } 1582 }
@@ -1671,7 +1671,7 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
1671 1671
1672 ASSERT_MGD_MTX(ifmgd); 1672 ASSERT_MGD_MTX(ifmgd);
1673 1673
1674 if (memcmp(mgmt->da, sdata->dev->dev_addr, ETH_ALEN)) 1674 if (memcmp(mgmt->da, sdata->vif.addr, ETH_ALEN))
1675 return; /* ignore ProbeResp to foreign address */ 1675 return; /* ignore ProbeResp to foreign address */
1676 1676
1677 baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt; 1677 baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
@@ -1686,7 +1686,7 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
1686 /* direct probe may be part of the association flow */ 1686 /* direct probe may be part of the association flow */
1687 if (wk && wk->state == IEEE80211_MGD_STATE_PROBE) { 1687 if (wk && wk->state == IEEE80211_MGD_STATE_PROBE) {
1688 printk(KERN_DEBUG "%s: direct probe responded\n", 1688 printk(KERN_DEBUG "%s: direct probe responded\n",
1689 sdata->dev->name); 1689 sdata->name);
1690 wk->tries = 0; 1690 wk->tries = 0;
1691 wk->state = IEEE80211_MGD_STATE_AUTH; 1691 wk->state = IEEE80211_MGD_STATE_AUTH;
1692 WARN_ON(ieee80211_authenticate(sdata, wk) != RX_MGMT_NONE); 1692 WARN_ON(ieee80211_authenticate(sdata, wk) != RX_MGMT_NONE);
@@ -1779,7 +1779,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
1779#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 1779#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
1780 if (net_ratelimit()) { 1780 if (net_ratelimit()) {
1781 printk(KERN_DEBUG "%s: cancelling probereq poll due " 1781 printk(KERN_DEBUG "%s: cancelling probereq poll due "
1782 "to a received beacon\n", sdata->dev->name); 1782 "to a received beacon\n", sdata->name);
1783 } 1783 }
1784#endif 1784#endif
1785 ifmgd->flags &= ~IEEE80211_STA_BEACON_POLL; 1785 ifmgd->flags &= ~IEEE80211_STA_BEACON_POLL;
@@ -2554,7 +2554,7 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
2554 mutex_unlock(&ifmgd->mtx); 2554 mutex_unlock(&ifmgd->mtx);
2555 2555
2556 printk(KERN_DEBUG "%s: deauthenticating from %pM by local choice (reason=%d)\n", 2556 printk(KERN_DEBUG "%s: deauthenticating from %pM by local choice (reason=%d)\n",
2557 sdata->dev->name, bssid, req->reason_code); 2557 sdata->name, bssid, req->reason_code);
2558 2558
2559 ieee80211_send_deauth_disassoc(sdata, bssid, 2559 ieee80211_send_deauth_disassoc(sdata, bssid,
2560 IEEE80211_STYPE_DEAUTH, req->reason_code, 2560 IEEE80211_STYPE_DEAUTH, req->reason_code,
@@ -2583,7 +2583,7 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
2583 } 2583 }
2584 2584
2585 printk(KERN_DEBUG "%s: disassociating from %pM by local choice (reason=%d)\n", 2585 printk(KERN_DEBUG "%s: disassociating from %pM by local choice (reason=%d)\n",
2586 sdata->dev->name, req->bss->bssid, req->reason_code); 2586 sdata->name, req->bss->bssid, req->reason_code);
2587 2587
2588 ieee80211_set_disassoc(sdata, false); 2588 ieee80211_set_disassoc(sdata, false);
2589 2589