Loading drivers/net/wireless/ath/ar9170/phy.c +2 −4 Original line number Diff line number Diff line Loading @@ -1141,7 +1141,8 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar, u8 vpds[2][AR5416_PD_GAIN_ICEPTS]; u8 pwrs[2][AR5416_PD_GAIN_ICEPTS]; int chain, idx, i; u8 f; u32 phy_data = 0; u8 f, tmp; switch (channel->band) { case IEEE80211_BAND_2GHZ: Loading Loading @@ -1208,9 +1209,6 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar, } for (i = 0; i < 76; i++) { u32 phy_data; u8 tmp; if (i < 25) { tmp = ar9170_interpolate_val(i, &pwrs[0][0], &vpds[0][0]); Loading drivers/net/wireless/b43/pio.c +38 −22 Original line number Diff line number Diff line Loading @@ -340,10 +340,15 @@ static u16 tx_write_2byte_queue(struct b43_pio_txqueue *q, q->mmio_base + B43_PIO_TXDATA, sizeof(u16)); if (data_len & 1) { u8 tail[2] = { 0, }; /* Write the last byte. */ ctl &= ~B43_PIO_TXCTL_WRITEHI; b43_piotx_write16(q, B43_PIO_TXCTL, ctl); b43_piotx_write16(q, B43_PIO_TXDATA, data[data_len - 1]); tail[0] = data[data_len - 1]; ssb_block_write(dev->dev, tail, 2, q->mmio_base + B43_PIO_TXDATA, sizeof(u16)); } return ctl; Loading Loading @@ -386,26 +391,31 @@ static u32 tx_write_4byte_queue(struct b43_pio_txqueue *q, q->mmio_base + B43_PIO8_TXDATA, sizeof(u32)); if (data_len & 3) { u32 value = 0; u8 tail[4] = { 0, }; /* Write the last few bytes. */ ctl &= ~(B43_PIO8_TXCTL_8_15 | B43_PIO8_TXCTL_16_23 | B43_PIO8_TXCTL_24_31); data = &(data[data_len - 1]); switch (data_len & 3) { case 3: ctl |= B43_PIO8_TXCTL_16_23; value |= (u32)(*data) << 16; data--; ctl |= B43_PIO8_TXCTL_16_23 | B43_PIO8_TXCTL_8_15; tail[0] = data[data_len - 3]; tail[1] = data[data_len - 2]; tail[2] = data[data_len - 1]; break; case 2: ctl |= B43_PIO8_TXCTL_8_15; value |= (u32)(*data) << 8; data--; tail[0] = data[data_len - 2]; tail[1] = data[data_len - 1]; break; case 1: value |= (u32)(*data); tail[0] = data[data_len - 1]; break; } b43_piotx_write32(q, B43_PIO8_TXCTL, ctl); b43_piotx_write32(q, B43_PIO8_TXDATA, value); ssb_block_write(dev->dev, tail, 4, q->mmio_base + B43_PIO8_TXDATA, sizeof(u32)); } return ctl; Loading Loading @@ -693,21 +703,25 @@ static bool pio_rx_frame(struct b43_pio_rxqueue *q) q->mmio_base + B43_PIO8_RXDATA, sizeof(u32)); if (len & 3) { u32 value; char *data; u8 tail[4] = { 0, }; /* Read the last few bytes. */ value = b43_piorx_read32(q, B43_PIO8_RXDATA); data = &(skb->data[len + padding - 1]); ssb_block_read(dev->dev, tail, 4, q->mmio_base + B43_PIO8_RXDATA, sizeof(u32)); switch (len & 3) { case 3: *data = (value >> 16); data--; skb->data[len + padding - 3] = tail[0]; skb->data[len + padding - 2] = tail[1]; skb->data[len + padding - 1] = tail[2]; break; case 2: *data = (value >> 8); data--; skb->data[len + padding - 2] = tail[0]; skb->data[len + padding - 1] = tail[1]; break; case 1: *data = value; skb->data[len + padding - 1] = tail[0]; break; } } } else { Loading @@ -715,11 +729,13 @@ static bool pio_rx_frame(struct b43_pio_rxqueue *q) q->mmio_base + B43_PIO_RXDATA, sizeof(u16)); if (len & 1) { u16 value; u8 tail[2] = { 0, }; /* Read the last byte. */ value = b43_piorx_read16(q, B43_PIO_RXDATA); skb->data[len + padding - 1] = value; ssb_block_read(dev->dev, tail, 2, q->mmio_base + B43_PIO_RXDATA, sizeof(u16)); skb->data[len + padding - 1] = tail[0]; } } Loading drivers/net/wireless/mac80211_hwsim.c +3 −0 Original line number Diff line number Diff line Loading @@ -631,6 +631,9 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw, data->beacon_int = 1024 * info->beacon_int / 1000 * HZ / 1000; if (WARN_ON(!data->beacon_int)) data->beacon_int = 1; if (data->started) mod_timer(&data->beacon_timer, jiffies + data->beacon_int); } if (changed & BSS_CHANGED_ERP_CTS_PROT) { Loading drivers/net/wireless/rt2x00/rt73usb.c +1 −0 Original line number Diff line number Diff line Loading @@ -2381,6 +2381,7 @@ static struct usb_device_id rt73usb_device_table[] = { /* Huawei-3Com */ { USB_DEVICE(0x1472, 0x0009), USB_DEVICE_DATA(&rt73usb_ops) }, /* Hercules */ { USB_DEVICE(0x06f8, 0xe002), USB_DEVICE_DATA(&rt73usb_ops) }, { USB_DEVICE(0x06f8, 0xe010), USB_DEVICE_DATA(&rt73usb_ops) }, { USB_DEVICE(0x06f8, 0xe020), USB_DEVICE_DATA(&rt73usb_ops) }, /* Linksys */ Loading net/mac80211/tx.c +4 −1 Original line number Diff line number Diff line Loading @@ -367,7 +367,10 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx) struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; u32 staflags; if (unlikely(!sta || ieee80211_is_probe_resp(hdr->frame_control))) if (unlikely(!sta || ieee80211_is_probe_resp(hdr->frame_control) || ieee80211_is_auth(hdr->frame_control) || ieee80211_is_assoc_resp(hdr->frame_control) || ieee80211_is_reassoc_resp(hdr->frame_control))) return TX_CONTINUE; staflags = get_sta_flags(sta); Loading Loading
drivers/net/wireless/ath/ar9170/phy.c +2 −4 Original line number Diff line number Diff line Loading @@ -1141,7 +1141,8 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar, u8 vpds[2][AR5416_PD_GAIN_ICEPTS]; u8 pwrs[2][AR5416_PD_GAIN_ICEPTS]; int chain, idx, i; u8 f; u32 phy_data = 0; u8 f, tmp; switch (channel->band) { case IEEE80211_BAND_2GHZ: Loading Loading @@ -1208,9 +1209,6 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar, } for (i = 0; i < 76; i++) { u32 phy_data; u8 tmp; if (i < 25) { tmp = ar9170_interpolate_val(i, &pwrs[0][0], &vpds[0][0]); Loading
drivers/net/wireless/b43/pio.c +38 −22 Original line number Diff line number Diff line Loading @@ -340,10 +340,15 @@ static u16 tx_write_2byte_queue(struct b43_pio_txqueue *q, q->mmio_base + B43_PIO_TXDATA, sizeof(u16)); if (data_len & 1) { u8 tail[2] = { 0, }; /* Write the last byte. */ ctl &= ~B43_PIO_TXCTL_WRITEHI; b43_piotx_write16(q, B43_PIO_TXCTL, ctl); b43_piotx_write16(q, B43_PIO_TXDATA, data[data_len - 1]); tail[0] = data[data_len - 1]; ssb_block_write(dev->dev, tail, 2, q->mmio_base + B43_PIO_TXDATA, sizeof(u16)); } return ctl; Loading Loading @@ -386,26 +391,31 @@ static u32 tx_write_4byte_queue(struct b43_pio_txqueue *q, q->mmio_base + B43_PIO8_TXDATA, sizeof(u32)); if (data_len & 3) { u32 value = 0; u8 tail[4] = { 0, }; /* Write the last few bytes. */ ctl &= ~(B43_PIO8_TXCTL_8_15 | B43_PIO8_TXCTL_16_23 | B43_PIO8_TXCTL_24_31); data = &(data[data_len - 1]); switch (data_len & 3) { case 3: ctl |= B43_PIO8_TXCTL_16_23; value |= (u32)(*data) << 16; data--; ctl |= B43_PIO8_TXCTL_16_23 | B43_PIO8_TXCTL_8_15; tail[0] = data[data_len - 3]; tail[1] = data[data_len - 2]; tail[2] = data[data_len - 1]; break; case 2: ctl |= B43_PIO8_TXCTL_8_15; value |= (u32)(*data) << 8; data--; tail[0] = data[data_len - 2]; tail[1] = data[data_len - 1]; break; case 1: value |= (u32)(*data); tail[0] = data[data_len - 1]; break; } b43_piotx_write32(q, B43_PIO8_TXCTL, ctl); b43_piotx_write32(q, B43_PIO8_TXDATA, value); ssb_block_write(dev->dev, tail, 4, q->mmio_base + B43_PIO8_TXDATA, sizeof(u32)); } return ctl; Loading Loading @@ -693,21 +703,25 @@ static bool pio_rx_frame(struct b43_pio_rxqueue *q) q->mmio_base + B43_PIO8_RXDATA, sizeof(u32)); if (len & 3) { u32 value; char *data; u8 tail[4] = { 0, }; /* Read the last few bytes. */ value = b43_piorx_read32(q, B43_PIO8_RXDATA); data = &(skb->data[len + padding - 1]); ssb_block_read(dev->dev, tail, 4, q->mmio_base + B43_PIO8_RXDATA, sizeof(u32)); switch (len & 3) { case 3: *data = (value >> 16); data--; skb->data[len + padding - 3] = tail[0]; skb->data[len + padding - 2] = tail[1]; skb->data[len + padding - 1] = tail[2]; break; case 2: *data = (value >> 8); data--; skb->data[len + padding - 2] = tail[0]; skb->data[len + padding - 1] = tail[1]; break; case 1: *data = value; skb->data[len + padding - 1] = tail[0]; break; } } } else { Loading @@ -715,11 +729,13 @@ static bool pio_rx_frame(struct b43_pio_rxqueue *q) q->mmio_base + B43_PIO_RXDATA, sizeof(u16)); if (len & 1) { u16 value; u8 tail[2] = { 0, }; /* Read the last byte. */ value = b43_piorx_read16(q, B43_PIO_RXDATA); skb->data[len + padding - 1] = value; ssb_block_read(dev->dev, tail, 2, q->mmio_base + B43_PIO_RXDATA, sizeof(u16)); skb->data[len + padding - 1] = tail[0]; } } Loading
drivers/net/wireless/mac80211_hwsim.c +3 −0 Original line number Diff line number Diff line Loading @@ -631,6 +631,9 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw, data->beacon_int = 1024 * info->beacon_int / 1000 * HZ / 1000; if (WARN_ON(!data->beacon_int)) data->beacon_int = 1; if (data->started) mod_timer(&data->beacon_timer, jiffies + data->beacon_int); } if (changed & BSS_CHANGED_ERP_CTS_PROT) { Loading
drivers/net/wireless/rt2x00/rt73usb.c +1 −0 Original line number Diff line number Diff line Loading @@ -2381,6 +2381,7 @@ static struct usb_device_id rt73usb_device_table[] = { /* Huawei-3Com */ { USB_DEVICE(0x1472, 0x0009), USB_DEVICE_DATA(&rt73usb_ops) }, /* Hercules */ { USB_DEVICE(0x06f8, 0xe002), USB_DEVICE_DATA(&rt73usb_ops) }, { USB_DEVICE(0x06f8, 0xe010), USB_DEVICE_DATA(&rt73usb_ops) }, { USB_DEVICE(0x06f8, 0xe020), USB_DEVICE_DATA(&rt73usb_ops) }, /* Linksys */ Loading
net/mac80211/tx.c +4 −1 Original line number Diff line number Diff line Loading @@ -367,7 +367,10 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx) struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; u32 staflags; if (unlikely(!sta || ieee80211_is_probe_resp(hdr->frame_control))) if (unlikely(!sta || ieee80211_is_probe_resp(hdr->frame_control) || ieee80211_is_auth(hdr->frame_control) || ieee80211_is_assoc_resp(hdr->frame_control) || ieee80211_is_reassoc_resp(hdr->frame_control))) return TX_CONTINUE; staflags = get_sta_flags(sta); Loading