diff options
| -rw-r--r-- | net/mac80211/debugfs.c | 2 | ||||
| -rw-r--r-- | net/mac80211/ieee80211_sta.c | 12 | ||||
| -rw-r--r-- | net/wireless/sysfs.c | 2 |
3 files changed, 14 insertions, 2 deletions
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c index bb6c0feb2d48..476c8486f789 100644 --- a/net/mac80211/debugfs.c +++ b/net/mac80211/debugfs.c | |||
| @@ -112,7 +112,7 @@ DEBUGFS_READONLY_FILE(wep_iv, 20, "%#06x", | |||
| 112 | local->wep_iv & 0xffffff); | 112 | local->wep_iv & 0xffffff); |
| 113 | DEBUGFS_READONLY_FILE(tx_power_reduction, 20, "%d.%d dBm", | 113 | DEBUGFS_READONLY_FILE(tx_power_reduction, 20, "%d.%d dBm", |
| 114 | local->hw.conf.tx_power_reduction / 10, | 114 | local->hw.conf.tx_power_reduction / 10, |
| 115 | local->hw.conf.tx_power_reduction & 10); | 115 | local->hw.conf.tx_power_reduction % 10); |
| 116 | DEBUGFS_READONLY_FILE(rate_ctrl_alg, 100, "%s", | 116 | DEBUGFS_READONLY_FILE(rate_ctrl_alg, 100, "%s", |
| 117 | local->rate_ctrl ? local->rate_ctrl->ops->name : "<unset>"); | 117 | local->rate_ctrl ? local->rate_ctrl->ops->name : "<unset>"); |
| 118 | 118 | ||
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index 9f30ae4c2ab3..91b545c144c1 100644 --- a/net/mac80211/ieee80211_sta.c +++ b/net/mac80211/ieee80211_sta.c | |||
| @@ -2592,11 +2592,17 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw) | |||
| 2592 | 2592 | ||
| 2593 | read_lock(&local->sub_if_lock); | 2593 | read_lock(&local->sub_if_lock); |
| 2594 | list_for_each_entry(sdata, &local->sub_if_list, list) { | 2594 | list_for_each_entry(sdata, &local->sub_if_list, list) { |
| 2595 | |||
| 2596 | /* No need to wake the master device. */ | ||
| 2597 | if (sdata->dev == local->mdev) | ||
| 2598 | continue; | ||
| 2599 | |||
| 2595 | if (sdata->type == IEEE80211_IF_TYPE_STA) { | 2600 | if (sdata->type == IEEE80211_IF_TYPE_STA) { |
| 2596 | if (sdata->u.sta.associated) | 2601 | if (sdata->u.sta.associated) |
| 2597 | ieee80211_send_nullfunc(local, sdata, 0); | 2602 | ieee80211_send_nullfunc(local, sdata, 0); |
| 2598 | ieee80211_sta_timer((unsigned long)sdata); | 2603 | ieee80211_sta_timer((unsigned long)sdata); |
| 2599 | } | 2604 | } |
| 2605 | |||
| 2600 | netif_wake_queue(sdata->dev); | 2606 | netif_wake_queue(sdata->dev); |
| 2601 | } | 2607 | } |
| 2602 | read_unlock(&local->sub_if_lock); | 2608 | read_unlock(&local->sub_if_lock); |
| @@ -2738,6 +2744,12 @@ static int ieee80211_sta_start_scan(struct net_device *dev, | |||
| 2738 | 2744 | ||
| 2739 | read_lock(&local->sub_if_lock); | 2745 | read_lock(&local->sub_if_lock); |
| 2740 | list_for_each_entry(sdata, &local->sub_if_list, list) { | 2746 | list_for_each_entry(sdata, &local->sub_if_list, list) { |
| 2747 | |||
| 2748 | /* Don't stop the master interface, otherwise we can't transmit | ||
| 2749 | * probes! */ | ||
| 2750 | if (sdata->dev == local->mdev) | ||
| 2751 | continue; | ||
| 2752 | |||
| 2741 | netif_stop_queue(sdata->dev); | 2753 | netif_stop_queue(sdata->dev); |
| 2742 | if (sdata->type == IEEE80211_IF_TYPE_STA && | 2754 | if (sdata->type == IEEE80211_IF_TYPE_STA && |
| 2743 | sdata->u.sta.associated) | 2755 | sdata->u.sta.associated) |
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c index 3ebae1442963..88aaacd9f822 100644 --- a/net/wireless/sysfs.c +++ b/net/wireless/sysfs.c | |||
| @@ -33,7 +33,7 @@ static ssize_t _show_permaddr(struct device *dev, | |||
| 33 | struct device_attribute *attr, | 33 | struct device_attribute *attr, |
| 34 | char *buf) | 34 | char *buf) |
| 35 | { | 35 | { |
| 36 | char *addr = dev_to_rdev(dev)->wiphy.perm_addr; | 36 | unsigned char *addr = dev_to_rdev(dev)->wiphy.perm_addr; |
| 37 | 37 | ||
| 38 | return sprintf(buf, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | 38 | return sprintf(buf, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", |
| 39 | addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]); | 39 | addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]); |
