wireless-drivers fixes for v5.9
First set of fixes for v5.9, small but important. brcmfmac * fix a throughput regression on bcm4329 mt76 * fix a regression with stations reconnecting on mt7616 * properly free tx skbs, it was working by accident before mwifiex * fix a regression with 256 bit encryption keys wlcore * revert AES CMAC support as it caused a regression -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJfWMWeAAoJEG4XJFUm622b51UH/iAie0itT+pB1xAzYBrzVuLq EilW/gbVlP/nG9uqntMeB6vdUP7E/mUh1pLhcGZAPknZrElu+4QrkrXU7inAunaG n+9OUyrmgnYGwMD4HihYimYXHKP7mWfH8y8Wfv/uo+UEvEbrH/yUUcuCF82+qsah Dwop5w2SAeYzNs5X8Xg03KGj8dS+bsuO+gyzBrGRZArql599EJ5XuOpfzXvUiqtF lSOLLMMCcgfbTf2Sqc4CWgNB0/0jhWBPsYxzGJC31S/gu0B72J8FmPWr2g/9L8Eb T24OaNJqS+DtJHPj9BUQJoZqYFRwcY+DsBT4oEPMghrCbb5M2j48nQqLe82a9vQ= =bdZ6 -----END PGP SIGNATURE----- Merge tag 'wireless-drivers-2020-09-09' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for v5.9 First set of fixes for v5.9, small but important. brcmfmac * fix a throughput regression on bcm4329 mt76 * fix a regression with stations reconnecting on mt7616 * properly free tx skbs, it was working by accident before mwifiex * fix a regression with 256 bit encryption keys wlcore * revert AES CMAC support as it caused a regression ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
a19454b609
@ -664,9 +664,15 @@ static void pkt_align(struct sk_buff *p, int len, int align)
|
||||
/* To check if there's window offered */
|
||||
static bool data_ok(struct brcmf_sdio *bus)
|
||||
{
|
||||
/* Reserve TXCTL_CREDITS credits for txctl */
|
||||
return (bus->tx_max - bus->tx_seq) > TXCTL_CREDITS &&
|
||||
((bus->tx_max - bus->tx_seq) & 0x80) == 0;
|
||||
u8 tx_rsv = 0;
|
||||
|
||||
/* Reserve TXCTL_CREDITS credits for txctl when it is ready to send */
|
||||
if (bus->ctrl_frame_stat)
|
||||
tx_rsv = TXCTL_CREDITS;
|
||||
|
||||
return (bus->tx_max - bus->tx_seq - tx_rsv) != 0 &&
|
||||
((bus->tx_max - bus->tx_seq - tx_rsv) & 0x80) == 0;
|
||||
|
||||
}
|
||||
|
||||
/* To check if there's window offered */
|
||||
|
@ -954,7 +954,7 @@ struct mwifiex_tkip_param {
|
||||
struct mwifiex_aes_param {
|
||||
u8 pn[WPA_PN_SIZE];
|
||||
__le16 key_len;
|
||||
u8 key[WLAN_KEY_LEN_CCMP];
|
||||
u8 key[WLAN_KEY_LEN_CCMP_256];
|
||||
} __packed;
|
||||
|
||||
struct mwifiex_wapi_param {
|
||||
|
@ -619,7 +619,7 @@ static int mwifiex_ret_802_11_key_material_v2(struct mwifiex_private *priv,
|
||||
key_v2 = &resp->params.key_material_v2;
|
||||
|
||||
len = le16_to_cpu(key_v2->key_param_set.key_params.aes.key_len);
|
||||
if (len > WLAN_KEY_LEN_CCMP)
|
||||
if (len > sizeof(key_v2->key_param_set.key_params.aes.key))
|
||||
return -EINVAL;
|
||||
|
||||
if (le16_to_cpu(key_v2->action) == HostCmd_ACT_GEN_SET) {
|
||||
@ -635,7 +635,7 @@ static int mwifiex_ret_802_11_key_material_v2(struct mwifiex_private *priv,
|
||||
return 0;
|
||||
|
||||
memset(priv->aes_key_v2.key_param_set.key_params.aes.key, 0,
|
||||
WLAN_KEY_LEN_CCMP);
|
||||
sizeof(key_v2->key_param_set.key_params.aes.key));
|
||||
priv->aes_key_v2.key_param_set.key_params.aes.key_len =
|
||||
cpu_to_le16(len);
|
||||
memcpy(priv->aes_key_v2.key_param_set.key_params.aes.key,
|
||||
|
@ -2128,7 +2128,8 @@ static int mt7615_load_n9(struct mt7615_dev *dev, const char *name)
|
||||
sizeof(dev->mt76.hw->wiphy->fw_version),
|
||||
"%.10s-%.15s", hdr->fw_ver, hdr->build_date);
|
||||
|
||||
if (!strncmp(hdr->fw_ver, "2.0", sizeof(hdr->fw_ver))) {
|
||||
if (!is_mt7615(&dev->mt76) &&
|
||||
!strncmp(hdr->fw_ver, "2.0", sizeof(hdr->fw_ver))) {
|
||||
dev->fw_ver = MT7615_FIRMWARE_V2;
|
||||
dev->mcu_ops = &sta_update_ops;
|
||||
} else {
|
||||
|
@ -699,8 +699,12 @@ void mt7915_unregister_device(struct mt7915_dev *dev)
|
||||
spin_lock_bh(&dev->token_lock);
|
||||
idr_for_each_entry(&dev->token, txwi, id) {
|
||||
mt7915_txp_skb_unmap(&dev->mt76, txwi);
|
||||
if (txwi->skb)
|
||||
dev_kfree_skb_any(txwi->skb);
|
||||
if (txwi->skb) {
|
||||
struct ieee80211_hw *hw;
|
||||
|
||||
hw = mt76_tx_status_get_hw(&dev->mt76, txwi->skb);
|
||||
ieee80211_free_txskb(hw, txwi->skb);
|
||||
}
|
||||
mt76_put_txwi(&dev->mt76, txwi);
|
||||
}
|
||||
spin_unlock_bh(&dev->token_lock);
|
||||
|
@ -841,7 +841,7 @@ mt7915_tx_complete_status(struct mt76_dev *mdev, struct sk_buff *skb,
|
||||
if (sta || !(info->flags & IEEE80211_TX_CTL_NO_ACK))
|
||||
mt7915_tx_status(sta, hw, info, NULL);
|
||||
|
||||
dev_kfree_skb(skb);
|
||||
ieee80211_free_txskb(hw, skb);
|
||||
}
|
||||
|
||||
void mt7915_txp_skb_unmap(struct mt76_dev *dev,
|
||||
|
@ -458,7 +458,6 @@ enum wl1271_cmd_key_type {
|
||||
KEY_TKIP = 2,
|
||||
KEY_AES = 3,
|
||||
KEY_GEM = 4,
|
||||
KEY_IGTK = 5,
|
||||
};
|
||||
|
||||
struct wl1271_cmd_set_keys {
|
||||
|
@ -3559,9 +3559,6 @@ int wlcore_set_key(struct wl1271 *wl, enum set_key_cmd cmd,
|
||||
case WL1271_CIPHER_SUITE_GEM:
|
||||
key_type = KEY_GEM;
|
||||
break;
|
||||
case WLAN_CIPHER_SUITE_AES_CMAC:
|
||||
key_type = KEY_IGTK;
|
||||
break;
|
||||
default:
|
||||
wl1271_error("Unknown key algo 0x%x", key_conf->cipher);
|
||||
|
||||
@ -6231,7 +6228,6 @@ static int wl1271_init_ieee80211(struct wl1271 *wl)
|
||||
WLAN_CIPHER_SUITE_TKIP,
|
||||
WLAN_CIPHER_SUITE_CCMP,
|
||||
WL1271_CIPHER_SUITE_GEM,
|
||||
WLAN_CIPHER_SUITE_AES_CMAC,
|
||||
};
|
||||
|
||||
/* The tx descriptor buffer */
|
||||
|
Loading…
x
Reference in New Issue
Block a user