diff options
| -rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/rtl8187_dev.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 2 | ||||
| -rw-r--r-- | fs/compat_ioctl.c | 3 | ||||
| -rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_wx.c | 11 |
5 files changed, 11 insertions, 9 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c index d779199c30d0..b37f1e348700 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c | |||
| @@ -1638,7 +1638,7 @@ void bcm43xx_phy_set_baseband_attenuation(struct bcm43xx_private *bcm, | |||
| 1638 | return; | 1638 | return; |
| 1639 | } | 1639 | } |
| 1640 | 1640 | ||
| 1641 | if (phy->analog == 1) { | 1641 | if (phy->analog > 1) { |
| 1642 | value = bcm43xx_phy_read(bcm, 0x0060) & ~0x003C; | 1642 | value = bcm43xx_phy_read(bcm, 0x0060) & ~0x003C; |
| 1643 | value |= (baseband_attenuation << 2) & 0x003C; | 1643 | value |= (baseband_attenuation << 2) & 0x003C; |
| 1644 | } else { | 1644 | } else { |
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c index cea85894b7f2..e61c6d5ba1a9 100644 --- a/drivers/net/wireless/rtl8187_dev.c +++ b/drivers/net/wireless/rtl8187_dev.c | |||
| @@ -466,7 +466,7 @@ static int rtl8187_add_interface(struct ieee80211_hw *dev, | |||
| 466 | return -EOPNOTSUPP; | 466 | return -EOPNOTSUPP; |
| 467 | } | 467 | } |
| 468 | 468 | ||
| 469 | priv->hwaddr = conf->mac_addr; | 469 | priv->hwaddr = conf->mac_addr ? conf->mac_addr : dev->wiphy->perm_addr; |
| 470 | 470 | ||
| 471 | return 0; | 471 | return 0; |
| 472 | } | 472 | } |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index f6c487aa8246..26869d107e52 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
| @@ -822,7 +822,7 @@ static void cs_set_control(struct zd_mac *mac, struct zd_ctrlset *cs, | |||
| 822 | cs->control |= ZD_CS_MULTICAST; | 822 | cs->control |= ZD_CS_MULTICAST; |
| 823 | 823 | ||
| 824 | /* PS-POLL */ | 824 | /* PS-POLL */ |
| 825 | if (stype == IEEE80211_STYPE_PSPOLL) | 825 | if (ftype == IEEE80211_FTYPE_CTL && stype == IEEE80211_STYPE_PSPOLL) |
| 826 | cs->control |= ZD_CS_PS_POLL_FRAME; | 826 | cs->control |= ZD_CS_PS_POLL_FRAME; |
| 827 | 827 | ||
| 828 | /* Unicast data frames over the threshold should have RTS */ | 828 | /* Unicast data frames over the threshold should have RTS */ |
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 2bc1428d621c..a6c9078af124 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c | |||
| @@ -3161,12 +3161,9 @@ COMPATIBLE_IOCTL(SIOCSIWSENS) | |||
| 3161 | COMPATIBLE_IOCTL(SIOCGIWSENS) | 3161 | COMPATIBLE_IOCTL(SIOCGIWSENS) |
| 3162 | COMPATIBLE_IOCTL(SIOCSIWRANGE) | 3162 | COMPATIBLE_IOCTL(SIOCSIWRANGE) |
| 3163 | COMPATIBLE_IOCTL(SIOCSIWPRIV) | 3163 | COMPATIBLE_IOCTL(SIOCSIWPRIV) |
| 3164 | COMPATIBLE_IOCTL(SIOCGIWPRIV) | ||
| 3165 | COMPATIBLE_IOCTL(SIOCSIWSTATS) | 3164 | COMPATIBLE_IOCTL(SIOCSIWSTATS) |
| 3166 | COMPATIBLE_IOCTL(SIOCGIWSTATS) | ||
| 3167 | COMPATIBLE_IOCTL(SIOCSIWAP) | 3165 | COMPATIBLE_IOCTL(SIOCSIWAP) |
| 3168 | COMPATIBLE_IOCTL(SIOCGIWAP) | 3166 | COMPATIBLE_IOCTL(SIOCGIWAP) |
| 3169 | COMPATIBLE_IOCTL(SIOCSIWSCAN) | ||
| 3170 | COMPATIBLE_IOCTL(SIOCSIWRATE) | 3167 | COMPATIBLE_IOCTL(SIOCSIWRATE) |
| 3171 | COMPATIBLE_IOCTL(SIOCGIWRATE) | 3168 | COMPATIBLE_IOCTL(SIOCGIWRATE) |
| 3172 | COMPATIBLE_IOCTL(SIOCSIWRTS) | 3169 | COMPATIBLE_IOCTL(SIOCSIWRTS) |
diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c index f13937bf9e8c..d054e9224b3e 100644 --- a/net/ieee80211/softmac/ieee80211softmac_wx.c +++ b/net/ieee80211/softmac/ieee80211softmac_wx.c | |||
| @@ -74,8 +74,8 @@ ieee80211softmac_wx_set_essid(struct net_device *net_dev, | |||
| 74 | struct ieee80211softmac_auth_queue_item *authptr; | 74 | struct ieee80211softmac_auth_queue_item *authptr; |
| 75 | int length = 0; | 75 | int length = 0; |
| 76 | 76 | ||
| 77 | check_assoc_again: | ||
| 77 | mutex_lock(&sm->associnfo.mutex); | 78 | mutex_lock(&sm->associnfo.mutex); |
| 78 | |||
| 79 | /* Check if we're already associating to this or another network | 79 | /* Check if we're already associating to this or another network |
| 80 | * If it's another network, cancel and start over with our new network | 80 | * If it's another network, cancel and start over with our new network |
| 81 | * If it's our network, ignore the change, we're already doing it! | 81 | * If it's our network, ignore the change, we're already doing it! |
| @@ -98,13 +98,18 @@ ieee80211softmac_wx_set_essid(struct net_device *net_dev, | |||
| 98 | cancel_delayed_work(&authptr->work); | 98 | cancel_delayed_work(&authptr->work); |
| 99 | sm->associnfo.bssvalid = 0; | 99 | sm->associnfo.bssvalid = 0; |
| 100 | sm->associnfo.bssfixed = 0; | 100 | sm->associnfo.bssfixed = 0; |
| 101 | flush_scheduled_work(); | ||
| 102 | sm->associnfo.associating = 0; | 101 | sm->associnfo.associating = 0; |
| 103 | sm->associnfo.associated = 0; | 102 | sm->associnfo.associated = 0; |
| 103 | /* We must unlock to avoid deadlocks with the assoc workqueue | ||
| 104 | * on the associnfo.mutex */ | ||
| 105 | mutex_unlock(&sm->associnfo.mutex); | ||
| 106 | flush_scheduled_work(); | ||
| 107 | /* Avoid race! Check assoc status again. Maybe someone started an | ||
| 108 | * association while we flushed. */ | ||
| 109 | goto check_assoc_again; | ||
| 104 | } | 110 | } |
| 105 | } | 111 | } |
| 106 | 112 | ||
| 107 | |||
| 108 | sm->associnfo.static_essid = 0; | 113 | sm->associnfo.static_essid = 0; |
| 109 | sm->associnfo.assoc_wait = 0; | 114 | sm->associnfo.assoc_wait = 0; |
| 110 | 115 | ||
