diff options
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 207 |
1 files changed, 114 insertions, 93 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index afad8bb7e334..2119a79dcc86 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -2247,8 +2247,8 @@ static int ipw_send_adapter_address(struct ipw_priv *priv, u8 * mac) | |||
2247 | return -1; | 2247 | return -1; |
2248 | } | 2248 | } |
2249 | 2249 | ||
2250 | IPW_DEBUG_INFO("%s: Setting MAC to " MAC_FMT "\n", | 2250 | IPW_DEBUG_INFO("%s: Setting MAC to %s\n", |
2251 | priv->net_dev->name, MAC_ARG(mac)); | 2251 | priv->net_dev->name, print_mac(mac, mac)); |
2252 | 2252 | ||
2253 | return ipw_send_cmd_pdu(priv, IPW_CMD_ADAPTER_ADDRESS, ETH_ALEN, mac); | 2253 | return ipw_send_cmd_pdu(priv, IPW_CMD_ADAPTER_ADDRESS, ETH_ALEN, mac); |
2254 | } | 2254 | } |
@@ -3796,6 +3796,7 @@ static u8 ipw_add_station(struct ipw_priv *priv, u8 * bssid) | |||
3796 | { | 3796 | { |
3797 | struct ipw_station_entry entry; | 3797 | struct ipw_station_entry entry; |
3798 | int i; | 3798 | int i; |
3799 | DECLARE_MAC_BUF(mac); | ||
3799 | 3800 | ||
3800 | for (i = 0; i < priv->num_stations; i++) { | 3801 | for (i = 0; i < priv->num_stations; i++) { |
3801 | if (!memcmp(priv->stations[i], bssid, ETH_ALEN)) { | 3802 | if (!memcmp(priv->stations[i], bssid, ETH_ALEN)) { |
@@ -3812,7 +3813,7 @@ static u8 ipw_add_station(struct ipw_priv *priv, u8 * bssid) | |||
3812 | if (i == MAX_STATIONS) | 3813 | if (i == MAX_STATIONS) |
3813 | return IPW_INVALID_STATION; | 3814 | return IPW_INVALID_STATION; |
3814 | 3815 | ||
3815 | IPW_DEBUG_SCAN("Adding AdHoc station: " MAC_FMT "\n", MAC_ARG(bssid)); | 3816 | IPW_DEBUG_SCAN("Adding AdHoc station: %s\n", print_mac(mac, bssid)); |
3816 | 3817 | ||
3817 | entry.reserved = 0; | 3818 | entry.reserved = 0; |
3818 | entry.support_mode = 0; | 3819 | entry.support_mode = 0; |
@@ -3839,6 +3840,7 @@ static u8 ipw_find_station(struct ipw_priv *priv, u8 * bssid) | |||
3839 | static void ipw_send_disassociate(struct ipw_priv *priv, int quiet) | 3840 | static void ipw_send_disassociate(struct ipw_priv *priv, int quiet) |
3840 | { | 3841 | { |
3841 | int err; | 3842 | int err; |
3843 | DECLARE_MAC_BUF(mac); | ||
3842 | 3844 | ||
3843 | if (priv->status & STATUS_ASSOCIATING) { | 3845 | if (priv->status & STATUS_ASSOCIATING) { |
3844 | IPW_DEBUG_ASSOC("Disassociating while associating.\n"); | 3846 | IPW_DEBUG_ASSOC("Disassociating while associating.\n"); |
@@ -3851,9 +3853,9 @@ static void ipw_send_disassociate(struct ipw_priv *priv, int quiet) | |||
3851 | return; | 3853 | return; |
3852 | } | 3854 | } |
3853 | 3855 | ||
3854 | IPW_DEBUG_ASSOC("Disassocation attempt from " MAC_FMT " " | 3856 | IPW_DEBUG_ASSOC("Disassocation attempt from %s " |
3855 | "on channel %d.\n", | 3857 | "on channel %d.\n", |
3856 | MAC_ARG(priv->assoc_request.bssid), | 3858 | print_mac(mac, priv->assoc_request.bssid), |
3857 | priv->assoc_request.channel); | 3859 | priv->assoc_request.channel); |
3858 | 3860 | ||
3859 | priv->status &= ~(STATUS_ASSOCIATING | STATUS_ASSOCIATED); | 3861 | priv->status &= ~(STATUS_ASSOCIATING | STATUS_ASSOCIATED); |
@@ -4348,6 +4350,7 @@ static void ipw_handle_missed_beacon(struct ipw_priv *priv, | |||
4348 | static void ipw_rx_notification(struct ipw_priv *priv, | 4350 | static void ipw_rx_notification(struct ipw_priv *priv, |
4349 | struct ipw_rx_notification *notif) | 4351 | struct ipw_rx_notification *notif) |
4350 | { | 4352 | { |
4353 | DECLARE_MAC_BUF(mac); | ||
4351 | notif->size = le16_to_cpu(notif->size); | 4354 | notif->size = le16_to_cpu(notif->size); |
4352 | 4355 | ||
4353 | IPW_DEBUG_NOTIF("type = %i (%d bytes)\n", notif->subtype, notif->size); | 4356 | IPW_DEBUG_NOTIF("type = %i (%d bytes)\n", notif->subtype, notif->size); |
@@ -4360,11 +4363,11 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4360 | case CMAS_ASSOCIATED:{ | 4363 | case CMAS_ASSOCIATED:{ |
4361 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | | 4364 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | |
4362 | IPW_DL_ASSOC, | 4365 | IPW_DL_ASSOC, |
4363 | "associated: '%s' " MAC_FMT | 4366 | "associated: '%s' %s" |
4364 | " \n", | 4367 | " \n", |
4365 | escape_essid(priv->essid, | 4368 | escape_essid(priv->essid, |
4366 | priv->essid_len), | 4369 | priv->essid_len), |
4367 | MAC_ARG(priv->bssid)); | 4370 | print_mac(mac, priv->bssid)); |
4368 | 4371 | ||
4369 | switch (priv->ieee->iw_mode) { | 4372 | switch (priv->ieee->iw_mode) { |
4370 | case IW_MODE_INFRA: | 4373 | case IW_MODE_INFRA: |
@@ -4444,13 +4447,13 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4444 | IPW_DL_STATE | | 4447 | IPW_DL_STATE | |
4445 | IPW_DL_ASSOC, | 4448 | IPW_DL_ASSOC, |
4446 | "deauthenticated: '%s' " | 4449 | "deauthenticated: '%s' " |
4447 | MAC_FMT | 4450 | "%s" |
4448 | ": (0x%04X) - %s \n", | 4451 | ": (0x%04X) - %s \n", |
4449 | escape_essid(priv-> | 4452 | escape_essid(priv-> |
4450 | essid, | 4453 | essid, |
4451 | priv-> | 4454 | priv-> |
4452 | essid_len), | 4455 | essid_len), |
4453 | MAC_ARG(priv->bssid), | 4456 | print_mac(mac, priv->bssid), |
4454 | ntohs(auth->status), | 4457 | ntohs(auth->status), |
4455 | ipw_get_status_code | 4458 | ipw_get_status_code |
4456 | (ntohs | 4459 | (ntohs |
@@ -4467,11 +4470,11 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4467 | 4470 | ||
4468 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | | 4471 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | |
4469 | IPW_DL_ASSOC, | 4472 | IPW_DL_ASSOC, |
4470 | "authenticated: '%s' " MAC_FMT | 4473 | "authenticated: '%s' %s" |
4471 | "\n", | 4474 | "\n", |
4472 | escape_essid(priv->essid, | 4475 | escape_essid(priv->essid, |
4473 | priv->essid_len), | 4476 | priv->essid_len), |
4474 | MAC_ARG(priv->bssid)); | 4477 | print_mac(mac, priv->bssid)); |
4475 | break; | 4478 | break; |
4476 | } | 4479 | } |
4477 | 4480 | ||
@@ -4496,11 +4499,11 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4496 | 4499 | ||
4497 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | | 4500 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | |
4498 | IPW_DL_ASSOC, | 4501 | IPW_DL_ASSOC, |
4499 | "disassociated: '%s' " MAC_FMT | 4502 | "disassociated: '%s' %s" |
4500 | " \n", | 4503 | " \n", |
4501 | escape_essid(priv->essid, | 4504 | escape_essid(priv->essid, |
4502 | priv->essid_len), | 4505 | priv->essid_len), |
4503 | MAC_ARG(priv->bssid)); | 4506 | print_mac(mac, priv->bssid)); |
4504 | 4507 | ||
4505 | priv->status &= | 4508 | priv->status &= |
4506 | ~(STATUS_DISASSOCIATING | | 4509 | ~(STATUS_DISASSOCIATING | |
@@ -4535,10 +4538,10 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4535 | switch (auth->state) { | 4538 | switch (auth->state) { |
4536 | case CMAS_AUTHENTICATED: | 4539 | case CMAS_AUTHENTICATED: |
4537 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE, | 4540 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE, |
4538 | "authenticated: '%s' " MAC_FMT " \n", | 4541 | "authenticated: '%s' %s \n", |
4539 | escape_essid(priv->essid, | 4542 | escape_essid(priv->essid, |
4540 | priv->essid_len), | 4543 | priv->essid_len), |
4541 | MAC_ARG(priv->bssid)); | 4544 | print_mac(mac, priv->bssid)); |
4542 | priv->status |= STATUS_AUTH; | 4545 | priv->status |= STATUS_AUTH; |
4543 | break; | 4546 | break; |
4544 | 4547 | ||
@@ -4554,10 +4557,10 @@ static void ipw_rx_notification(struct ipw_priv *priv, | |||
4554 | } | 4557 | } |
4555 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | | 4558 | IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | |
4556 | IPW_DL_ASSOC, | 4559 | IPW_DL_ASSOC, |
4557 | "deauthenticated: '%s' " MAC_FMT "\n", | 4560 | "deauthenticated: '%s' %s\n", |
4558 | escape_essid(priv->essid, | 4561 | escape_essid(priv->essid, |
4559 | priv->essid_len), | 4562 | priv->essid_len), |
4560 | MAC_ARG(priv->bssid)); | 4563 | print_mac(mac, priv->bssid)); |
4561 | 4564 | ||
4562 | priv->status &= ~(STATUS_ASSOCIATING | | 4565 | priv->status &= ~(STATUS_ASSOCIATING | |
4563 | STATUS_AUTH | | 4566 | STATUS_AUTH | |
@@ -5383,25 +5386,27 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5383 | int roaming) | 5386 | int roaming) |
5384 | { | 5387 | { |
5385 | struct ipw_supported_rates rates; | 5388 | struct ipw_supported_rates rates; |
5389 | DECLARE_MAC_BUF(mac); | ||
5390 | DECLARE_MAC_BUF(mac2); | ||
5386 | 5391 | ||
5387 | /* Verify that this network's capability is compatible with the | 5392 | /* Verify that this network's capability is compatible with the |
5388 | * current mode (AdHoc or Infrastructure) */ | 5393 | * current mode (AdHoc or Infrastructure) */ |
5389 | if ((priv->ieee->iw_mode == IW_MODE_ADHOC && | 5394 | if ((priv->ieee->iw_mode == IW_MODE_ADHOC && |
5390 | !(network->capability & WLAN_CAPABILITY_IBSS))) { | 5395 | !(network->capability & WLAN_CAPABILITY_IBSS))) { |
5391 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded due to " | 5396 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded due to " |
5392 | "capability mismatch.\n", | 5397 | "capability mismatch.\n", |
5393 | escape_essid(network->ssid, network->ssid_len), | 5398 | escape_essid(network->ssid, network->ssid_len), |
5394 | MAC_ARG(network->bssid)); | 5399 | print_mac(mac, network->bssid)); |
5395 | return 0; | 5400 | return 0; |
5396 | } | 5401 | } |
5397 | 5402 | ||
5398 | /* If we do not have an ESSID for this AP, we can not associate with | 5403 | /* If we do not have an ESSID for this AP, we can not associate with |
5399 | * it */ | 5404 | * it */ |
5400 | if (network->flags & NETWORK_EMPTY_ESSID) { | 5405 | if (network->flags & NETWORK_EMPTY_ESSID) { |
5401 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5406 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5402 | "because of hidden ESSID.\n", | 5407 | "because of hidden ESSID.\n", |
5403 | escape_essid(network->ssid, network->ssid_len), | 5408 | escape_essid(network->ssid, network->ssid_len), |
5404 | MAC_ARG(network->bssid)); | 5409 | print_mac(mac, network->bssid)); |
5405 | return 0; | 5410 | return 0; |
5406 | } | 5411 | } |
5407 | 5412 | ||
@@ -5411,11 +5416,11 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5411 | if ((network->ssid_len != match->network->ssid_len) || | 5416 | if ((network->ssid_len != match->network->ssid_len) || |
5412 | memcmp(network->ssid, match->network->ssid, | 5417 | memcmp(network->ssid, match->network->ssid, |
5413 | network->ssid_len)) { | 5418 | network->ssid_len)) { |
5414 | IPW_DEBUG_MERGE("Netowrk '%s (" MAC_FMT ")' excluded " | 5419 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5415 | "because of non-network ESSID.\n", | 5420 | "because of non-network ESSID.\n", |
5416 | escape_essid(network->ssid, | 5421 | escape_essid(network->ssid, |
5417 | network->ssid_len), | 5422 | network->ssid_len), |
5418 | MAC_ARG(network->bssid)); | 5423 | print_mac(mac, network->bssid)); |
5419 | return 0; | 5424 | return 0; |
5420 | } | 5425 | } |
5421 | } else { | 5426 | } else { |
@@ -5430,9 +5435,9 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5430 | strncpy(escaped, | 5435 | strncpy(escaped, |
5431 | escape_essid(network->ssid, network->ssid_len), | 5436 | escape_essid(network->ssid, network->ssid_len), |
5432 | sizeof(escaped)); | 5437 | sizeof(escaped)); |
5433 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5438 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5434 | "because of ESSID mismatch: '%s'.\n", | 5439 | "because of ESSID mismatch: '%s'.\n", |
5435 | escaped, MAC_ARG(network->bssid), | 5440 | escaped, print_mac(mac, network->bssid), |
5436 | escape_essid(priv->essid, | 5441 | escape_essid(priv->essid, |
5437 | priv->essid_len)); | 5442 | priv->essid_len)); |
5438 | return 0; | 5443 | return 0; |
@@ -5459,10 +5464,10 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5459 | /* Now go through and see if the requested network is valid... */ | 5464 | /* Now go through and see if the requested network is valid... */ |
5460 | if (priv->ieee->scan_age != 0 && | 5465 | if (priv->ieee->scan_age != 0 && |
5461 | time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { | 5466 | time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { |
5462 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5467 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5463 | "because of age: %ums.\n", | 5468 | "because of age: %ums.\n", |
5464 | escape_essid(network->ssid, network->ssid_len), | 5469 | escape_essid(network->ssid, network->ssid_len), |
5465 | MAC_ARG(network->bssid), | 5470 | print_mac(mac, network->bssid), |
5466 | jiffies_to_msecs(jiffies - | 5471 | jiffies_to_msecs(jiffies - |
5467 | network->last_scanned)); | 5472 | network->last_scanned)); |
5468 | return 0; | 5473 | return 0; |
@@ -5470,10 +5475,10 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5470 | 5475 | ||
5471 | if ((priv->config & CFG_STATIC_CHANNEL) && | 5476 | if ((priv->config & CFG_STATIC_CHANNEL) && |
5472 | (network->channel != priv->channel)) { | 5477 | (network->channel != priv->channel)) { |
5473 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5478 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5474 | "because of channel mismatch: %d != %d.\n", | 5479 | "because of channel mismatch: %d != %d.\n", |
5475 | escape_essid(network->ssid, network->ssid_len), | 5480 | escape_essid(network->ssid, network->ssid_len), |
5476 | MAC_ARG(network->bssid), | 5481 | print_mac(mac, network->bssid), |
5477 | network->channel, priv->channel); | 5482 | network->channel, priv->channel); |
5478 | return 0; | 5483 | return 0; |
5479 | } | 5484 | } |
@@ -5481,10 +5486,10 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5481 | /* Verify privacy compatability */ | 5486 | /* Verify privacy compatability */ |
5482 | if (((priv->capability & CAP_PRIVACY_ON) ? 1 : 0) != | 5487 | if (((priv->capability & CAP_PRIVACY_ON) ? 1 : 0) != |
5483 | ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { | 5488 | ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { |
5484 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5489 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5485 | "because of privacy mismatch: %s != %s.\n", | 5490 | "because of privacy mismatch: %s != %s.\n", |
5486 | escape_essid(network->ssid, network->ssid_len), | 5491 | escape_essid(network->ssid, network->ssid_len), |
5487 | MAC_ARG(network->bssid), | 5492 | print_mac(mac, network->bssid), |
5488 | priv-> | 5493 | priv-> |
5489 | capability & CAP_PRIVACY_ON ? "on" : "off", | 5494 | capability & CAP_PRIVACY_ON ? "on" : "off", |
5490 | network-> | 5495 | network-> |
@@ -5494,40 +5499,41 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5494 | } | 5499 | } |
5495 | 5500 | ||
5496 | if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) { | 5501 | if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) { |
5497 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5502 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5498 | "because of the same BSSID match: " MAC_FMT | 5503 | "because of the same BSSID match: %s" |
5499 | ".\n", escape_essid(network->ssid, | 5504 | ".\n", escape_essid(network->ssid, |
5500 | network->ssid_len), | 5505 | network->ssid_len), |
5501 | MAC_ARG(network->bssid), MAC_ARG(priv->bssid)); | 5506 | print_mac(mac, network->bssid), |
5507 | print_mac(mac2, priv->bssid)); | ||
5502 | return 0; | 5508 | return 0; |
5503 | } | 5509 | } |
5504 | 5510 | ||
5505 | /* Filter out any incompatible freq / mode combinations */ | 5511 | /* Filter out any incompatible freq / mode combinations */ |
5506 | if (!ieee80211_is_valid_mode(priv->ieee, network->mode)) { | 5512 | if (!ieee80211_is_valid_mode(priv->ieee, network->mode)) { |
5507 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5513 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5508 | "because of invalid frequency/mode " | 5514 | "because of invalid frequency/mode " |
5509 | "combination.\n", | 5515 | "combination.\n", |
5510 | escape_essid(network->ssid, network->ssid_len), | 5516 | escape_essid(network->ssid, network->ssid_len), |
5511 | MAC_ARG(network->bssid)); | 5517 | print_mac(mac, network->bssid)); |
5512 | return 0; | 5518 | return 0; |
5513 | } | 5519 | } |
5514 | 5520 | ||
5515 | /* Ensure that the rates supported by the driver are compatible with | 5521 | /* Ensure that the rates supported by the driver are compatible with |
5516 | * this AP, including verification of basic rates (mandatory) */ | 5522 | * this AP, including verification of basic rates (mandatory) */ |
5517 | if (!ipw_compatible_rates(priv, network, &rates)) { | 5523 | if (!ipw_compatible_rates(priv, network, &rates)) { |
5518 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5524 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5519 | "because configured rate mask excludes " | 5525 | "because configured rate mask excludes " |
5520 | "AP mandatory rate.\n", | 5526 | "AP mandatory rate.\n", |
5521 | escape_essid(network->ssid, network->ssid_len), | 5527 | escape_essid(network->ssid, network->ssid_len), |
5522 | MAC_ARG(network->bssid)); | 5528 | print_mac(mac, network->bssid)); |
5523 | return 0; | 5529 | return 0; |
5524 | } | 5530 | } |
5525 | 5531 | ||
5526 | if (rates.num_rates == 0) { | 5532 | if (rates.num_rates == 0) { |
5527 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' excluded " | 5533 | IPW_DEBUG_MERGE("Network '%s (%s)' excluded " |
5528 | "because of no compatible rates.\n", | 5534 | "because of no compatible rates.\n", |
5529 | escape_essid(network->ssid, network->ssid_len), | 5535 | escape_essid(network->ssid, network->ssid_len), |
5530 | MAC_ARG(network->bssid)); | 5536 | print_mac(mac, network->bssid)); |
5531 | return 0; | 5537 | return 0; |
5532 | } | 5538 | } |
5533 | 5539 | ||
@@ -5538,9 +5544,9 @@ static int ipw_find_adhoc_network(struct ipw_priv *priv, | |||
5538 | /* Set up 'new' AP to this network */ | 5544 | /* Set up 'new' AP to this network */ |
5539 | ipw_copy_rates(&match->rates, &rates); | 5545 | ipw_copy_rates(&match->rates, &rates); |
5540 | match->network = network; | 5546 | match->network = network; |
5541 | IPW_DEBUG_MERGE("Network '%s (" MAC_FMT ")' is a viable match.\n", | 5547 | IPW_DEBUG_MERGE("Network '%s (%s)' is a viable match.\n", |
5542 | escape_essid(network->ssid, network->ssid_len), | 5548 | escape_essid(network->ssid, network->ssid_len), |
5543 | MAC_ARG(network->bssid)); | 5549 | print_mac(mac, network->bssid)); |
5544 | 5550 | ||
5545 | return 1; | 5551 | return 1; |
5546 | } | 5552 | } |
@@ -5594,6 +5600,7 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5594 | struct ieee80211_network *network, int roaming) | 5600 | struct ieee80211_network *network, int roaming) |
5595 | { | 5601 | { |
5596 | struct ipw_supported_rates rates; | 5602 | struct ipw_supported_rates rates; |
5603 | DECLARE_MAC_BUF(mac); | ||
5597 | 5604 | ||
5598 | /* Verify that this network's capability is compatible with the | 5605 | /* Verify that this network's capability is compatible with the |
5599 | * current mode (AdHoc or Infrastructure) */ | 5606 | * current mode (AdHoc or Infrastructure) */ |
@@ -5601,20 +5608,20 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5601 | !(network->capability & WLAN_CAPABILITY_ESS)) || | 5608 | !(network->capability & WLAN_CAPABILITY_ESS)) || |
5602 | (priv->ieee->iw_mode == IW_MODE_ADHOC && | 5609 | (priv->ieee->iw_mode == IW_MODE_ADHOC && |
5603 | !(network->capability & WLAN_CAPABILITY_IBSS))) { | 5610 | !(network->capability & WLAN_CAPABILITY_IBSS))) { |
5604 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded due to " | 5611 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded due to " |
5605 | "capability mismatch.\n", | 5612 | "capability mismatch.\n", |
5606 | escape_essid(network->ssid, network->ssid_len), | 5613 | escape_essid(network->ssid, network->ssid_len), |
5607 | MAC_ARG(network->bssid)); | 5614 | print_mac(mac, network->bssid)); |
5608 | return 0; | 5615 | return 0; |
5609 | } | 5616 | } |
5610 | 5617 | ||
5611 | /* If we do not have an ESSID for this AP, we can not associate with | 5618 | /* If we do not have an ESSID for this AP, we can not associate with |
5612 | * it */ | 5619 | * it */ |
5613 | if (network->flags & NETWORK_EMPTY_ESSID) { | 5620 | if (network->flags & NETWORK_EMPTY_ESSID) { |
5614 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5621 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5615 | "because of hidden ESSID.\n", | 5622 | "because of hidden ESSID.\n", |
5616 | escape_essid(network->ssid, network->ssid_len), | 5623 | escape_essid(network->ssid, network->ssid_len), |
5617 | MAC_ARG(network->bssid)); | 5624 | print_mac(mac, network->bssid)); |
5618 | return 0; | 5625 | return 0; |
5619 | } | 5626 | } |
5620 | 5627 | ||
@@ -5624,11 +5631,11 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5624 | if ((network->ssid_len != match->network->ssid_len) || | 5631 | if ((network->ssid_len != match->network->ssid_len) || |
5625 | memcmp(network->ssid, match->network->ssid, | 5632 | memcmp(network->ssid, match->network->ssid, |
5626 | network->ssid_len)) { | 5633 | network->ssid_len)) { |
5627 | IPW_DEBUG_ASSOC("Netowrk '%s (" MAC_FMT ")' excluded " | 5634 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5628 | "because of non-network ESSID.\n", | 5635 | "because of non-network ESSID.\n", |
5629 | escape_essid(network->ssid, | 5636 | escape_essid(network->ssid, |
5630 | network->ssid_len), | 5637 | network->ssid_len), |
5631 | MAC_ARG(network->bssid)); | 5638 | print_mac(mac, network->bssid)); |
5632 | return 0; | 5639 | return 0; |
5633 | } | 5640 | } |
5634 | } else { | 5641 | } else { |
@@ -5642,9 +5649,9 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5642 | strncpy(escaped, | 5649 | strncpy(escaped, |
5643 | escape_essid(network->ssid, network->ssid_len), | 5650 | escape_essid(network->ssid, network->ssid_len), |
5644 | sizeof(escaped)); | 5651 | sizeof(escaped)); |
5645 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5652 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5646 | "because of ESSID mismatch: '%s'.\n", | 5653 | "because of ESSID mismatch: '%s'.\n", |
5647 | escaped, MAC_ARG(network->bssid), | 5654 | escaped, print_mac(mac, network->bssid), |
5648 | escape_essid(priv->essid, | 5655 | escape_essid(priv->essid, |
5649 | priv->essid_len)); | 5656 | priv->essid_len)); |
5650 | return 0; | 5657 | return 0; |
@@ -5658,12 +5665,12 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5658 | strncpy(escaped, | 5665 | strncpy(escaped, |
5659 | escape_essid(network->ssid, network->ssid_len), | 5666 | escape_essid(network->ssid, network->ssid_len), |
5660 | sizeof(escaped)); | 5667 | sizeof(escaped)); |
5661 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded because " | 5668 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded because " |
5662 | "'%s (" MAC_FMT ")' has a stronger signal.\n", | 5669 | "'%s (%s)' has a stronger signal.\n", |
5663 | escaped, MAC_ARG(network->bssid), | 5670 | escaped, print_mac(mac, network->bssid), |
5664 | escape_essid(match->network->ssid, | 5671 | escape_essid(match->network->ssid, |
5665 | match->network->ssid_len), | 5672 | match->network->ssid_len), |
5666 | MAC_ARG(match->network->bssid)); | 5673 | print_mac(mac, match->network->bssid)); |
5667 | return 0; | 5674 | return 0; |
5668 | } | 5675 | } |
5669 | 5676 | ||
@@ -5671,11 +5678,11 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5671 | * last 3 seconds, do not try and associate again... */ | 5678 | * last 3 seconds, do not try and associate again... */ |
5672 | if (network->last_associate && | 5679 | if (network->last_associate && |
5673 | time_after(network->last_associate + (HZ * 3UL), jiffies)) { | 5680 | time_after(network->last_associate + (HZ * 3UL), jiffies)) { |
5674 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5681 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5675 | "because of storming (%ums since last " | 5682 | "because of storming (%ums since last " |
5676 | "assoc attempt).\n", | 5683 | "assoc attempt).\n", |
5677 | escape_essid(network->ssid, network->ssid_len), | 5684 | escape_essid(network->ssid, network->ssid_len), |
5678 | MAC_ARG(network->bssid), | 5685 | print_mac(mac, network->bssid), |
5679 | jiffies_to_msecs(jiffies - | 5686 | jiffies_to_msecs(jiffies - |
5680 | network->last_associate)); | 5687 | network->last_associate)); |
5681 | return 0; | 5688 | return 0; |
@@ -5684,10 +5691,10 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5684 | /* Now go through and see if the requested network is valid... */ | 5691 | /* Now go through and see if the requested network is valid... */ |
5685 | if (priv->ieee->scan_age != 0 && | 5692 | if (priv->ieee->scan_age != 0 && |
5686 | time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { | 5693 | time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { |
5687 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5694 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5688 | "because of age: %ums.\n", | 5695 | "because of age: %ums.\n", |
5689 | escape_essid(network->ssid, network->ssid_len), | 5696 | escape_essid(network->ssid, network->ssid_len), |
5690 | MAC_ARG(network->bssid), | 5697 | print_mac(mac, network->bssid), |
5691 | jiffies_to_msecs(jiffies - | 5698 | jiffies_to_msecs(jiffies - |
5692 | network->last_scanned)); | 5699 | network->last_scanned)); |
5693 | return 0; | 5700 | return 0; |
@@ -5695,10 +5702,10 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5695 | 5702 | ||
5696 | if ((priv->config & CFG_STATIC_CHANNEL) && | 5703 | if ((priv->config & CFG_STATIC_CHANNEL) && |
5697 | (network->channel != priv->channel)) { | 5704 | (network->channel != priv->channel)) { |
5698 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5705 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5699 | "because of channel mismatch: %d != %d.\n", | 5706 | "because of channel mismatch: %d != %d.\n", |
5700 | escape_essid(network->ssid, network->ssid_len), | 5707 | escape_essid(network->ssid, network->ssid_len), |
5701 | MAC_ARG(network->bssid), | 5708 | print_mac(mac, network->bssid), |
5702 | network->channel, priv->channel); | 5709 | network->channel, priv->channel); |
5703 | return 0; | 5710 | return 0; |
5704 | } | 5711 | } |
@@ -5706,10 +5713,10 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5706 | /* Verify privacy compatability */ | 5713 | /* Verify privacy compatability */ |
5707 | if (((priv->capability & CAP_PRIVACY_ON) ? 1 : 0) != | 5714 | if (((priv->capability & CAP_PRIVACY_ON) ? 1 : 0) != |
5708 | ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { | 5715 | ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { |
5709 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5716 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5710 | "because of privacy mismatch: %s != %s.\n", | 5717 | "because of privacy mismatch: %s != %s.\n", |
5711 | escape_essid(network->ssid, network->ssid_len), | 5718 | escape_essid(network->ssid, network->ssid_len), |
5712 | MAC_ARG(network->bssid), | 5719 | print_mac(mac, network->bssid), |
5713 | priv->capability & CAP_PRIVACY_ON ? "on" : | 5720 | priv->capability & CAP_PRIVACY_ON ? "on" : |
5714 | "off", | 5721 | "off", |
5715 | network->capability & | 5722 | network->capability & |
@@ -5719,48 +5726,48 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5719 | 5726 | ||
5720 | if ((priv->config & CFG_STATIC_BSSID) && | 5727 | if ((priv->config & CFG_STATIC_BSSID) && |
5721 | memcmp(network->bssid, priv->bssid, ETH_ALEN)) { | 5728 | memcmp(network->bssid, priv->bssid, ETH_ALEN)) { |
5722 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5729 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5723 | "because of BSSID mismatch: " MAC_FMT ".\n", | 5730 | "because of BSSID mismatch: %s.\n", |
5724 | escape_essid(network->ssid, network->ssid_len), | 5731 | escape_essid(network->ssid, network->ssid_len), |
5725 | MAC_ARG(network->bssid), MAC_ARG(priv->bssid)); | 5732 | print_mac(mac, network->bssid), print_mac(mac, priv->bssid)); |
5726 | return 0; | 5733 | return 0; |
5727 | } | 5734 | } |
5728 | 5735 | ||
5729 | /* Filter out any incompatible freq / mode combinations */ | 5736 | /* Filter out any incompatible freq / mode combinations */ |
5730 | if (!ieee80211_is_valid_mode(priv->ieee, network->mode)) { | 5737 | if (!ieee80211_is_valid_mode(priv->ieee, network->mode)) { |
5731 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5738 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5732 | "because of invalid frequency/mode " | 5739 | "because of invalid frequency/mode " |
5733 | "combination.\n", | 5740 | "combination.\n", |
5734 | escape_essid(network->ssid, network->ssid_len), | 5741 | escape_essid(network->ssid, network->ssid_len), |
5735 | MAC_ARG(network->bssid)); | 5742 | print_mac(mac, network->bssid)); |
5736 | return 0; | 5743 | return 0; |
5737 | } | 5744 | } |
5738 | 5745 | ||
5739 | /* Filter out invalid channel in current GEO */ | 5746 | /* Filter out invalid channel in current GEO */ |
5740 | if (!ieee80211_is_valid_channel(priv->ieee, network->channel)) { | 5747 | if (!ieee80211_is_valid_channel(priv->ieee, network->channel)) { |
5741 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5748 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5742 | "because of invalid channel in current GEO\n", | 5749 | "because of invalid channel in current GEO\n", |
5743 | escape_essid(network->ssid, network->ssid_len), | 5750 | escape_essid(network->ssid, network->ssid_len), |
5744 | MAC_ARG(network->bssid)); | 5751 | print_mac(mac, network->bssid)); |
5745 | return 0; | 5752 | return 0; |
5746 | } | 5753 | } |
5747 | 5754 | ||
5748 | /* Ensure that the rates supported by the driver are compatible with | 5755 | /* Ensure that the rates supported by the driver are compatible with |
5749 | * this AP, including verification of basic rates (mandatory) */ | 5756 | * this AP, including verification of basic rates (mandatory) */ |
5750 | if (!ipw_compatible_rates(priv, network, &rates)) { | 5757 | if (!ipw_compatible_rates(priv, network, &rates)) { |
5751 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5758 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5752 | "because configured rate mask excludes " | 5759 | "because configured rate mask excludes " |
5753 | "AP mandatory rate.\n", | 5760 | "AP mandatory rate.\n", |
5754 | escape_essid(network->ssid, network->ssid_len), | 5761 | escape_essid(network->ssid, network->ssid_len), |
5755 | MAC_ARG(network->bssid)); | 5762 | print_mac(mac, network->bssid)); |
5756 | return 0; | 5763 | return 0; |
5757 | } | 5764 | } |
5758 | 5765 | ||
5759 | if (rates.num_rates == 0) { | 5766 | if (rates.num_rates == 0) { |
5760 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' excluded " | 5767 | IPW_DEBUG_ASSOC("Network '%s (%s)' excluded " |
5761 | "because of no compatible rates.\n", | 5768 | "because of no compatible rates.\n", |
5762 | escape_essid(network->ssid, network->ssid_len), | 5769 | escape_essid(network->ssid, network->ssid_len), |
5763 | MAC_ARG(network->bssid)); | 5770 | print_mac(mac, network->bssid)); |
5764 | return 0; | 5771 | return 0; |
5765 | } | 5772 | } |
5766 | 5773 | ||
@@ -5772,9 +5779,9 @@ static int ipw_best_network(struct ipw_priv *priv, | |||
5772 | ipw_copy_rates(&match->rates, &rates); | 5779 | ipw_copy_rates(&match->rates, &rates); |
5773 | match->network = network; | 5780 | match->network = network; |
5774 | 5781 | ||
5775 | IPW_DEBUG_ASSOC("Network '%s (" MAC_FMT ")' is a viable match.\n", | 5782 | IPW_DEBUG_ASSOC("Network '%s (%s)' is a viable match.\n", |
5776 | escape_essid(network->ssid, network->ssid_len), | 5783 | escape_essid(network->ssid, network->ssid_len), |
5777 | MAC_ARG(network->bssid)); | 5784 | print_mac(mac, network->bssid)); |
5778 | 5785 | ||
5779 | return 1; | 5786 | return 1; |
5780 | } | 5787 | } |
@@ -6016,6 +6023,7 @@ static void ipw_bg_adhoc_check(struct work_struct *work) | |||
6016 | 6023 | ||
6017 | static void ipw_debug_config(struct ipw_priv *priv) | 6024 | static void ipw_debug_config(struct ipw_priv *priv) |
6018 | { | 6025 | { |
6026 | DECLARE_MAC_BUF(mac); | ||
6019 | IPW_DEBUG_INFO("Scan completed, no valid APs matched " | 6027 | IPW_DEBUG_INFO("Scan completed, no valid APs matched " |
6020 | "[CFG 0x%08X]\n", priv->config); | 6028 | "[CFG 0x%08X]\n", priv->config); |
6021 | if (priv->config & CFG_STATIC_CHANNEL) | 6029 | if (priv->config & CFG_STATIC_CHANNEL) |
@@ -6028,8 +6036,8 @@ static void ipw_debug_config(struct ipw_priv *priv) | |||
6028 | else | 6036 | else |
6029 | IPW_DEBUG_INFO("ESSID unlocked.\n"); | 6037 | IPW_DEBUG_INFO("ESSID unlocked.\n"); |
6030 | if (priv->config & CFG_STATIC_BSSID) | 6038 | if (priv->config & CFG_STATIC_BSSID) |
6031 | IPW_DEBUG_INFO("BSSID locked to " MAC_FMT "\n", | 6039 | IPW_DEBUG_INFO("BSSID locked to %s\n", |
6032 | MAC_ARG(priv->bssid)); | 6040 | print_mac(mac, priv->bssid)); |
6033 | else | 6041 | else |
6034 | IPW_DEBUG_INFO("BSSID unlocked.\n"); | 6042 | IPW_DEBUG_INFO("BSSID unlocked.\n"); |
6035 | if (priv->capability & CAP_PRIVACY_ON) | 6043 | if (priv->capability & CAP_PRIVACY_ON) |
@@ -7221,6 +7229,7 @@ static int ipw_associate_network(struct ipw_priv *priv, | |||
7221 | struct ipw_supported_rates *rates, int roaming) | 7229 | struct ipw_supported_rates *rates, int roaming) |
7222 | { | 7230 | { |
7223 | int err; | 7231 | int err; |
7232 | DECLARE_MAC_BUF(mac); | ||
7224 | 7233 | ||
7225 | if (priv->config & CFG_FIXED_RATE) | 7234 | if (priv->config & CFG_FIXED_RATE) |
7226 | ipw_set_fixed_rate(priv, network->mode); | 7235 | ipw_set_fixed_rate(priv, network->mode); |
@@ -7388,9 +7397,9 @@ static int ipw_associate_network(struct ipw_priv *priv, | |||
7388 | return err; | 7397 | return err; |
7389 | } | 7398 | } |
7390 | 7399 | ||
7391 | IPW_DEBUG(IPW_DL_STATE, "associating: '%s' " MAC_FMT " \n", | 7400 | IPW_DEBUG(IPW_DL_STATE, "associating: '%s' %s \n", |
7392 | escape_essid(priv->essid, priv->essid_len), | 7401 | escape_essid(priv->essid, priv->essid_len), |
7393 | MAC_ARG(priv->bssid)); | 7402 | print_mac(mac, priv->bssid)); |
7394 | 7403 | ||
7395 | return 0; | 7404 | return 0; |
7396 | } | 7405 | } |
@@ -8202,6 +8211,9 @@ static void ipw_rx(struct ipw_priv *priv) | |||
8202 | struct ieee80211_hdr_4addr *header; | 8211 | struct ieee80211_hdr_4addr *header; |
8203 | u32 r, w, i; | 8212 | u32 r, w, i; |
8204 | u8 network_packet; | 8213 | u8 network_packet; |
8214 | DECLARE_MAC_BUF(mac); | ||
8215 | DECLARE_MAC_BUF(mac2); | ||
8216 | DECLARE_MAC_BUF(mac3); | ||
8205 | 8217 | ||
8206 | r = ipw_read32(priv, IPW_RX_READ_INDEX); | 8218 | r = ipw_read32(priv, IPW_RX_READ_INDEX); |
8207 | w = ipw_read32(priv, IPW_RX_WRITE_INDEX); | 8219 | w = ipw_read32(priv, IPW_RX_WRITE_INDEX); |
@@ -8328,14 +8340,17 @@ static void ipw_rx(struct ipw_priv *priv) | |||
8328 | header))) | 8340 | header))) |
8329 | { | 8341 | { |
8330 | IPW_DEBUG_DROP("Dropping: " | 8342 | IPW_DEBUG_DROP("Dropping: " |
8331 | MAC_FMT ", " | 8343 | "%s, " |
8332 | MAC_FMT ", " | 8344 | "%s, " |
8333 | MAC_FMT "\n", | 8345 | "%s\n", |
8334 | MAC_ARG(header-> | 8346 | print_mac(mac, |
8347 | header-> | ||
8335 | addr1), | 8348 | addr1), |
8336 | MAC_ARG(header-> | 8349 | print_mac(mac2, |
8350 | header-> | ||
8337 | addr2), | 8351 | addr2), |
8338 | MAC_ARG(header-> | 8352 | print_mac(mac3, |
8353 | header-> | ||
8339 | addr3)); | 8354 | addr3)); |
8340 | break; | 8355 | break; |
8341 | } | 8356 | } |
@@ -8867,6 +8882,7 @@ static int ipw_wx_set_wap(struct net_device *dev, | |||
8867 | union iwreq_data *wrqu, char *extra) | 8882 | union iwreq_data *wrqu, char *extra) |
8868 | { | 8883 | { |
8869 | struct ipw_priv *priv = ieee80211_priv(dev); | 8884 | struct ipw_priv *priv = ieee80211_priv(dev); |
8885 | DECLARE_MAC_BUF(mac); | ||
8870 | 8886 | ||
8871 | static const unsigned char any[] = { | 8887 | static const unsigned char any[] = { |
8872 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff | 8888 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff |
@@ -8897,8 +8913,8 @@ static int ipw_wx_set_wap(struct net_device *dev, | |||
8897 | return 0; | 8913 | return 0; |
8898 | } | 8914 | } |
8899 | 8915 | ||
8900 | IPW_DEBUG_WX("Setting mandatory BSSID to " MAC_FMT "\n", | 8916 | IPW_DEBUG_WX("Setting mandatory BSSID to %s\n", |
8901 | MAC_ARG(wrqu->ap_addr.sa_data)); | 8917 | print_mac(mac, wrqu->ap_addr.sa_data)); |
8902 | 8918 | ||
8903 | memcpy(priv->bssid, wrqu->ap_addr.sa_data, ETH_ALEN); | 8919 | memcpy(priv->bssid, wrqu->ap_addr.sa_data, ETH_ALEN); |
8904 | 8920 | ||
@@ -8916,6 +8932,8 @@ static int ipw_wx_get_wap(struct net_device *dev, | |||
8916 | union iwreq_data *wrqu, char *extra) | 8932 | union iwreq_data *wrqu, char *extra) |
8917 | { | 8933 | { |
8918 | struct ipw_priv *priv = ieee80211_priv(dev); | 8934 | struct ipw_priv *priv = ieee80211_priv(dev); |
8935 | DECLARE_MAC_BUF(mac); | ||
8936 | |||
8919 | /* If we are associated, trying to associate, or have a statically | 8937 | /* If we are associated, trying to associate, or have a statically |
8920 | * configured BSSID then return that; otherwise return ANY */ | 8938 | * configured BSSID then return that; otherwise return ANY */ |
8921 | mutex_lock(&priv->mutex); | 8939 | mutex_lock(&priv->mutex); |
@@ -8926,8 +8944,8 @@ static int ipw_wx_get_wap(struct net_device *dev, | |||
8926 | } else | 8944 | } else |
8927 | memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN); | 8945 | memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN); |
8928 | 8946 | ||
8929 | IPW_DEBUG_WX("Getting WAP BSSID: " MAC_FMT "\n", | 8947 | IPW_DEBUG_WX("Getting WAP BSSID: %s\n", |
8930 | MAC_ARG(wrqu->ap_addr.sa_data)); | 8948 | print_mac(mac, wrqu->ap_addr.sa_data)); |
8931 | mutex_unlock(&priv->mutex); | 8949 | mutex_unlock(&priv->mutex); |
8932 | return 0; | 8950 | return 0; |
8933 | } | 8951 | } |
@@ -10133,6 +10151,7 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb, | |||
10133 | u8 id, hdr_len, unicast; | 10151 | u8 id, hdr_len, unicast; |
10134 | u16 remaining_bytes; | 10152 | u16 remaining_bytes; |
10135 | int fc; | 10153 | int fc; |
10154 | DECLARE_MAC_BUF(mac); | ||
10136 | 10155 | ||
10137 | hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); | 10156 | hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); |
10138 | switch (priv->ieee->iw_mode) { | 10157 | switch (priv->ieee->iw_mode) { |
@@ -10143,8 +10162,8 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb, | |||
10143 | id = ipw_add_station(priv, hdr->addr1); | 10162 | id = ipw_add_station(priv, hdr->addr1); |
10144 | if (id == IPW_INVALID_STATION) { | 10163 | if (id == IPW_INVALID_STATION) { |
10145 | IPW_WARNING("Attempt to send data to " | 10164 | IPW_WARNING("Attempt to send data to " |
10146 | "invalid cell: " MAC_FMT "\n", | 10165 | "invalid cell: %s\n", |
10147 | MAC_ARG(hdr->addr1)); | 10166 | print_mac(mac, hdr->addr1)); |
10148 | goto drop; | 10167 | goto drop; |
10149 | } | 10168 | } |
10150 | } | 10169 | } |
@@ -10460,13 +10479,15 @@ static int ipw_net_set_mac_address(struct net_device *dev, void *p) | |||
10460 | { | 10479 | { |
10461 | struct ipw_priv *priv = ieee80211_priv(dev); | 10480 | struct ipw_priv *priv = ieee80211_priv(dev); |
10462 | struct sockaddr *addr = p; | 10481 | struct sockaddr *addr = p; |
10482 | DECLARE_MAC_BUF(mac); | ||
10483 | |||
10463 | if (!is_valid_ether_addr(addr->sa_data)) | 10484 | if (!is_valid_ether_addr(addr->sa_data)) |
10464 | return -EADDRNOTAVAIL; | 10485 | return -EADDRNOTAVAIL; |
10465 | mutex_lock(&priv->mutex); | 10486 | mutex_lock(&priv->mutex); |
10466 | priv->config |= CFG_CUSTOM_MAC; | 10487 | priv->config |= CFG_CUSTOM_MAC; |
10467 | memcpy(priv->mac_addr, addr->sa_data, ETH_ALEN); | 10488 | memcpy(priv->mac_addr, addr->sa_data, ETH_ALEN); |
10468 | printk(KERN_INFO "%s: Setting MAC to " MAC_FMT "\n", | 10489 | printk(KERN_INFO "%s: Setting MAC to %s\n", |
10469 | priv->net_dev->name, MAC_ARG(priv->mac_addr)); | 10490 | priv->net_dev->name, print_mac(mac, priv->mac_addr)); |
10470 | queue_work(priv->workqueue, &priv->adapter_restart); | 10491 | queue_work(priv->workqueue, &priv->adapter_restart); |
10471 | mutex_unlock(&priv->mutex); | 10492 | mutex_unlock(&priv->mutex); |
10472 | return 0; | 10493 | return 0; |