From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Xing Song <xing.song@mediatek.com>,
Ryder Lee <ryder.lee@mediatek.com>, Felix Fietkau <nbd@nbd.name>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.12 106/242] mt76: fix iv and CCMP header insertion
Date: Thu, 15 Jul 2021 20:37:48 +0200 [thread overview]
Message-ID: <20210715182611.728266353@linuxfoundation.org> (raw)
In-Reply-To: <20210715182551.731989182@linuxfoundation.org>
From: Ryder Lee <ryder.lee@mediatek.com>
[ Upstream commit c368362c36d3d4cedbc9a1c9caa95960912cc429 ]
The iv from RXD is only for TKIP_RSC/CCMP_PN/GCMP_PN, and it needs a
check for CCMP header insertion. Move mt76_cipher_type to mt76.h to
reduce duplicated code.
Signed-off-by: Xing Song <xing.song@mediatek.com>
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt76.h | 16 +++++
.../net/wireless/mediatek/mt76/mt7603/mac.c | 33 +++++++---
.../net/wireless/mediatek/mt76/mt7603/regs.h | 12 ----
.../net/wireless/mediatek/mt76/mt7615/mac.c | 64 +++++++++++++++----
.../net/wireless/mediatek/mt76/mt7615/mac.h | 42 ------------
.../net/wireless/mediatek/mt76/mt76x02_mac.c | 28 ++++----
.../net/wireless/mediatek/mt76/mt76x02_regs.h | 18 +++---
.../net/wireless/mediatek/mt76/mt7915/mac.c | 29 ++++++---
.../net/wireless/mediatek/mt76/mt7915/mcu.c | 30 ++++-----
.../net/wireless/mediatek/mt76/mt7915/mcu.h | 23 ++++---
.../net/wireless/mediatek/mt76/mt7921/mac.c | 29 ++++++---
.../net/wireless/mediatek/mt76/mt7921/mcu.c | 30 ++++-----
.../net/wireless/mediatek/mt76/mt7921/mcu.h | 23 ++++---
13 files changed, 208 insertions(+), 169 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 967fe3e11d94..1ed63eddfcf2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -85,6 +85,22 @@ enum mt76_rxq_id {
__MT_RXQ_MAX
};
+enum mt76_cipher_type {
+ MT_CIPHER_NONE,
+ MT_CIPHER_WEP40,
+ MT_CIPHER_TKIP,
+ MT_CIPHER_TKIP_NO_MIC,
+ MT_CIPHER_AES_CCMP,
+ MT_CIPHER_WEP104,
+ MT_CIPHER_BIP_CMAC_128,
+ MT_CIPHER_WEP128,
+ MT_CIPHER_WAPI,
+ MT_CIPHER_CCMP_CCX,
+ MT_CIPHER_CCMP_256,
+ MT_CIPHER_GCMP,
+ MT_CIPHER_GCMP_256,
+};
+
struct mt76_queue_buf {
dma_addr_t addr;
u16 len;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
index cc4e7bc48294..92a7b45fbc15 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
@@ -564,14 +564,27 @@ mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
u8 *data = (u8 *)rxd;
if (status->flag & RX_FLAG_DECRYPTED) {
- status->iv[0] = data[5];
- status->iv[1] = data[4];
- status->iv[2] = data[3];
- status->iv[3] = data[2];
- status->iv[4] = data[1];
- status->iv[5] = data[0];
-
- insert_ccmp_hdr = FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ switch (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2)) {
+ case MT_CIPHER_AES_CCMP:
+ case MT_CIPHER_CCMP_CCX:
+ case MT_CIPHER_CCMP_256:
+ insert_ccmp_hdr =
+ FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ fallthrough;
+ case MT_CIPHER_TKIP:
+ case MT_CIPHER_TKIP_NO_MIC:
+ case MT_CIPHER_GCMP:
+ case MT_CIPHER_GCMP_256:
+ status->iv[0] = data[5];
+ status->iv[1] = data[4];
+ status->iv[2] = data[3];
+ status->iv[3] = data[2];
+ status->iv[4] = data[1];
+ status->iv[5] = data[0];
+ break;
+ default:
+ break;
+ }
}
rxd += 4;
@@ -828,7 +841,7 @@ void mt7603_wtbl_set_rates(struct mt7603_dev *dev, struct mt7603_sta *sta,
sta->wcid.tx_info |= MT_WCID_TX_INFO_SET;
}
-static enum mt7603_cipher_type
+static enum mt76_cipher_type
mt7603_mac_get_key_info(struct ieee80211_key_conf *key, u8 *key_data)
{
memset(key_data, 0, 32);
@@ -860,7 +873,7 @@ mt7603_mac_get_key_info(struct ieee80211_key_conf *key, u8 *key_data)
int mt7603_wtbl_set_key(struct mt7603_dev *dev, int wcid,
struct ieee80211_key_conf *key)
{
- enum mt7603_cipher_type cipher;
+ enum mt76_cipher_type cipher;
u32 addr = mt7603_wtbl3_addr(wcid);
u8 key_data[32];
int key_len = sizeof(key_data);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/regs.h b/drivers/net/wireless/mediatek/mt76/mt7603/regs.h
index 6741e6907194..3b901090b29c 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/regs.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/regs.h
@@ -765,16 +765,4 @@ enum {
#define MT_WTBL1_OR (MT_WTBL1_BASE + 0x2300)
#define MT_WTBL1_OR_PSM_WRITE BIT(31)
-enum mt7603_cipher_type {
- MT_CIPHER_NONE,
- MT_CIPHER_WEP40,
- MT_CIPHER_TKIP,
- MT_CIPHER_TKIP_NO_MIC,
- MT_CIPHER_AES_CCMP,
- MT_CIPHER_WEP104,
- MT_CIPHER_BIP_CMAC_128,
- MT_CIPHER_WEP128,
- MT_CIPHER_WAPI,
-};
-
#endif
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
index 7fd293b4dcf7..1da59c16e820 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -57,6 +57,33 @@ static const struct mt7615_dfs_radar_spec jp_radar_specs = {
},
};
+static enum mt76_cipher_type
+mt7615_mac_get_cipher(int cipher)
+{
+ switch (cipher) {
+ case WLAN_CIPHER_SUITE_WEP40:
+ return MT_CIPHER_WEP40;
+ case WLAN_CIPHER_SUITE_WEP104:
+ return MT_CIPHER_WEP104;
+ case WLAN_CIPHER_SUITE_TKIP:
+ return MT_CIPHER_TKIP;
+ case WLAN_CIPHER_SUITE_AES_CMAC:
+ return MT_CIPHER_BIP_CMAC_128;
+ case WLAN_CIPHER_SUITE_CCMP:
+ return MT_CIPHER_AES_CCMP;
+ case WLAN_CIPHER_SUITE_CCMP_256:
+ return MT_CIPHER_CCMP_256;
+ case WLAN_CIPHER_SUITE_GCMP:
+ return MT_CIPHER_GCMP;
+ case WLAN_CIPHER_SUITE_GCMP_256:
+ return MT_CIPHER_GCMP_256;
+ case WLAN_CIPHER_SUITE_SMS4:
+ return MT_CIPHER_WAPI;
+ default:
+ return MT_CIPHER_NONE;
+ }
+}
+
static struct mt76_wcid *mt7615_rx_get_wcid(struct mt7615_dev *dev,
u8 idx, bool unicast)
{
@@ -297,14 +324,27 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
u8 *data = (u8 *)rxd;
if (status->flag & RX_FLAG_DECRYPTED) {
- status->iv[0] = data[5];
- status->iv[1] = data[4];
- status->iv[2] = data[3];
- status->iv[3] = data[2];
- status->iv[4] = data[1];
- status->iv[5] = data[0];
-
- insert_ccmp_hdr = FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ switch (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2)) {
+ case MT_CIPHER_AES_CCMP:
+ case MT_CIPHER_CCMP_CCX:
+ case MT_CIPHER_CCMP_256:
+ insert_ccmp_hdr =
+ FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ fallthrough;
+ case MT_CIPHER_TKIP:
+ case MT_CIPHER_TKIP_NO_MIC:
+ case MT_CIPHER_GCMP:
+ case MT_CIPHER_GCMP_256:
+ status->iv[0] = data[5];
+ status->iv[1] = data[4];
+ status->iv[2] = data[3];
+ status->iv[3] = data[2];
+ status->iv[4] = data[1];
+ status->iv[5] = data[0];
+ break;
+ default:
+ break;
+ }
}
rxd += 4;
if ((u8 *)rxd - skb->data >= skb->len)
@@ -1037,7 +1077,7 @@ EXPORT_SYMBOL_GPL(mt7615_mac_set_rates);
static int
mt7615_mac_wtbl_update_key(struct mt7615_dev *dev, struct mt76_wcid *wcid,
struct ieee80211_key_conf *key,
- enum mt7615_cipher_type cipher, u16 cipher_mask,
+ enum mt76_cipher_type cipher, u16 cipher_mask,
enum set_key_cmd cmd)
{
u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx) + 30 * 4;
@@ -1077,7 +1117,7 @@ mt7615_mac_wtbl_update_key(struct mt7615_dev *dev, struct mt76_wcid *wcid,
static int
mt7615_mac_wtbl_update_pk(struct mt7615_dev *dev, struct mt76_wcid *wcid,
- enum mt7615_cipher_type cipher, u16 cipher_mask,
+ enum mt76_cipher_type cipher, u16 cipher_mask,
int keyidx, enum set_key_cmd cmd)
{
u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx), w0, w1;
@@ -1116,7 +1156,7 @@ mt7615_mac_wtbl_update_pk(struct mt7615_dev *dev, struct mt76_wcid *wcid,
static void
mt7615_mac_wtbl_update_cipher(struct mt7615_dev *dev, struct mt76_wcid *wcid,
- enum mt7615_cipher_type cipher, u16 cipher_mask,
+ enum mt76_cipher_type cipher, u16 cipher_mask,
enum set_key_cmd cmd)
{
u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx);
@@ -1142,7 +1182,7 @@ int __mt7615_mac_wtbl_set_key(struct mt7615_dev *dev,
struct ieee80211_key_conf *key,
enum set_key_cmd cmd)
{
- enum mt7615_cipher_type cipher;
+ enum mt76_cipher_type cipher;
u16 cipher_mask = wcid->cipher;
int err;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.h b/drivers/net/wireless/mediatek/mt76/mt7615/mac.h
index 169f4e17b5b4..1fb07799671b 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.h
@@ -375,48 +375,6 @@ struct mt7615_dfs_radar_spec {
struct mt7615_dfs_pattern radar_pattern[16];
};
-enum mt7615_cipher_type {
- MT_CIPHER_NONE,
- MT_CIPHER_WEP40,
- MT_CIPHER_TKIP,
- MT_CIPHER_TKIP_NO_MIC,
- MT_CIPHER_AES_CCMP,
- MT_CIPHER_WEP104,
- MT_CIPHER_BIP_CMAC_128,
- MT_CIPHER_WEP128,
- MT_CIPHER_WAPI,
- MT_CIPHER_CCMP_256 = 10,
- MT_CIPHER_GCMP,
- MT_CIPHER_GCMP_256,
-};
-
-static inline enum mt7615_cipher_type
-mt7615_mac_get_cipher(int cipher)
-{
- switch (cipher) {
- case WLAN_CIPHER_SUITE_WEP40:
- return MT_CIPHER_WEP40;
- case WLAN_CIPHER_SUITE_WEP104:
- return MT_CIPHER_WEP104;
- case WLAN_CIPHER_SUITE_TKIP:
- return MT_CIPHER_TKIP;
- case WLAN_CIPHER_SUITE_AES_CMAC:
- return MT_CIPHER_BIP_CMAC_128;
- case WLAN_CIPHER_SUITE_CCMP:
- return MT_CIPHER_AES_CCMP;
- case WLAN_CIPHER_SUITE_CCMP_256:
- return MT_CIPHER_CCMP_256;
- case WLAN_CIPHER_SUITE_GCMP:
- return MT_CIPHER_GCMP;
- case WLAN_CIPHER_SUITE_GCMP_256:
- return MT_CIPHER_GCMP_256;
- case WLAN_CIPHER_SUITE_SMS4:
- return MT_CIPHER_WAPI;
- default:
- return MT_CIPHER_NONE;
- }
-}
-
static inline struct mt7615_txp_common *
mt7615_txwi_to_txp(struct mt76_dev *dev, struct mt76_txwi_cache *t)
{
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index 771bad60e1bc..b21edc8e86e1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -34,24 +34,24 @@ mt76x02_mac_get_key_info(struct ieee80211_key_conf *key, u8 *key_data)
{
memset(key_data, 0, 32);
if (!key)
- return MT_CIPHER_NONE;
+ return MT76X02_CIPHER_NONE;
if (key->keylen > 32)
- return MT_CIPHER_NONE;
+ return MT76X02_CIPHER_NONE;
memcpy(key_data, key->key, key->keylen);
switch (key->cipher) {
case WLAN_CIPHER_SUITE_WEP40:
- return MT_CIPHER_WEP40;
+ return MT76X02_CIPHER_WEP40;
case WLAN_CIPHER_SUITE_WEP104:
- return MT_CIPHER_WEP104;
+ return MT76X02_CIPHER_WEP104;
case WLAN_CIPHER_SUITE_TKIP:
- return MT_CIPHER_TKIP;
+ return MT76X02_CIPHER_TKIP;
case WLAN_CIPHER_SUITE_CCMP:
- return MT_CIPHER_AES_CCMP;
+ return MT76X02_CIPHER_AES_CCMP;
default:
- return MT_CIPHER_NONE;
+ return MT76X02_CIPHER_NONE;
}
}
@@ -63,7 +63,7 @@ int mt76x02_mac_shared_key_setup(struct mt76x02_dev *dev, u8 vif_idx,
u32 val;
cipher = mt76x02_mac_get_key_info(key, key_data);
- if (cipher == MT_CIPHER_NONE && key)
+ if (cipher == MT76X02_CIPHER_NONE && key)
return -EOPNOTSUPP;
val = mt76_rr(dev, MT_SKEY_MODE(vif_idx));
@@ -91,10 +91,10 @@ void mt76x02_mac_wcid_sync_pn(struct mt76x02_dev *dev, u8 idx,
eiv = mt76_rr(dev, MT_WCID_IV(idx) + 4);
pn = (u64)eiv << 16;
- if (cipher == MT_CIPHER_TKIP) {
+ if (cipher == MT76X02_CIPHER_TKIP) {
pn |= (iv >> 16) & 0xff;
pn |= (iv & 0xff) << 8;
- } else if (cipher >= MT_CIPHER_AES_CCMP) {
+ } else if (cipher >= MT76X02_CIPHER_AES_CCMP) {
pn |= iv & 0xffff;
} else {
return;
@@ -112,7 +112,7 @@ int mt76x02_mac_wcid_set_key(struct mt76x02_dev *dev, u8 idx,
u64 pn;
cipher = mt76x02_mac_get_key_info(key, key_data);
- if (cipher == MT_CIPHER_NONE && key)
+ if (cipher == MT76X02_CIPHER_NONE && key)
return -EOPNOTSUPP;
mt76_wr_copy(dev, MT_WCID_KEY(idx), key_data, sizeof(key_data));
@@ -126,16 +126,16 @@ int mt76x02_mac_wcid_set_key(struct mt76x02_dev *dev, u8 idx,
pn = atomic64_read(&key->tx_pn);
iv_data[3] = key->keyidx << 6;
- if (cipher >= MT_CIPHER_TKIP) {
+ if (cipher >= MT76X02_CIPHER_TKIP) {
iv_data[3] |= 0x20;
put_unaligned_le32(pn >> 16, &iv_data[4]);
}
- if (cipher == MT_CIPHER_TKIP) {
+ if (cipher == MT76X02_CIPHER_TKIP) {
iv_data[0] = (pn >> 8) & 0xff;
iv_data[1] = (iv_data[0] | 0x20) & 0x7f;
iv_data[2] = pn & 0xff;
- } else if (cipher >= MT_CIPHER_AES_CCMP) {
+ } else if (cipher >= MT76X02_CIPHER_AES_CCMP) {
put_unaligned_le16((pn & 0xffff), &iv_data[0]);
}
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_regs.h b/drivers/net/wireless/mediatek/mt76/mt76x02_regs.h
index 3e722276b5c2..fa7872ac22bf 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_regs.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_regs.h
@@ -692,15 +692,15 @@ struct mt76_wcid_key {
} __packed __aligned(4);
enum mt76x02_cipher_type {
- MT_CIPHER_NONE,
- MT_CIPHER_WEP40,
- MT_CIPHER_WEP104,
- MT_CIPHER_TKIP,
- MT_CIPHER_AES_CCMP,
- MT_CIPHER_CKIP40,
- MT_CIPHER_CKIP104,
- MT_CIPHER_CKIP128,
- MT_CIPHER_WAPI,
+ MT76X02_CIPHER_NONE,
+ MT76X02_CIPHER_WEP40,
+ MT76X02_CIPHER_WEP104,
+ MT76X02_CIPHER_TKIP,
+ MT76X02_CIPHER_AES_CCMP,
+ MT76X02_CIPHER_CKIP40,
+ MT76X02_CIPHER_CKIP104,
+ MT76X02_CIPHER_CKIP128,
+ MT76X02_CIPHER_WAPI,
};
#endif
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
index 819670767521..be40b0777517 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
@@ -404,14 +404,27 @@ int mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
u8 *data = (u8 *)rxd;
if (status->flag & RX_FLAG_DECRYPTED) {
- status->iv[0] = data[5];
- status->iv[1] = data[4];
- status->iv[2] = data[3];
- status->iv[3] = data[2];
- status->iv[4] = data[1];
- status->iv[5] = data[0];
-
- insert_ccmp_hdr = FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ switch (FIELD_GET(MT_RXD1_NORMAL_SEC_MODE, rxd1)) {
+ case MT_CIPHER_AES_CCMP:
+ case MT_CIPHER_CCMP_CCX:
+ case MT_CIPHER_CCMP_256:
+ insert_ccmp_hdr =
+ FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ fallthrough;
+ case MT_CIPHER_TKIP:
+ case MT_CIPHER_TKIP_NO_MIC:
+ case MT_CIPHER_GCMP:
+ case MT_CIPHER_GCMP_256:
+ status->iv[0] = data[5];
+ status->iv[1] = data[4];
+ status->iv[2] = data[3];
+ status->iv[3] = data[2];
+ status->iv[4] = data[1];
+ status->iv[5] = data[0];
+ break;
+ default:
+ break;
+ }
}
rxd += 4;
if ((u8 *)rxd - skb->data >= skb->len)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
index f069a5a03e14..22c791b084ba 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
@@ -88,28 +88,28 @@ struct mt7915_fw_region {
#define HE_PHY(p, c) u8_get_bits(c, IEEE80211_HE_PHY_##p)
#define HE_MAC(m, c) u8_get_bits(c, IEEE80211_HE_MAC_##m)
-static enum mt7915_cipher_type
+static enum mcu_cipher_type
mt7915_mcu_get_cipher(int cipher)
{
switch (cipher) {
case WLAN_CIPHER_SUITE_WEP40:
- return MT_CIPHER_WEP40;
+ return MCU_CIPHER_WEP40;
case WLAN_CIPHER_SUITE_WEP104:
- return MT_CIPHER_WEP104;
+ return MCU_CIPHER_WEP104;
case WLAN_CIPHER_SUITE_TKIP:
- return MT_CIPHER_TKIP;
+ return MCU_CIPHER_TKIP;
case WLAN_CIPHER_SUITE_AES_CMAC:
- return MT_CIPHER_BIP_CMAC_128;
+ return MCU_CIPHER_BIP_CMAC_128;
case WLAN_CIPHER_SUITE_CCMP:
- return MT_CIPHER_AES_CCMP;
+ return MCU_CIPHER_AES_CCMP;
case WLAN_CIPHER_SUITE_CCMP_256:
- return MT_CIPHER_CCMP_256;
+ return MCU_CIPHER_CCMP_256;
case WLAN_CIPHER_SUITE_GCMP:
- return MT_CIPHER_GCMP;
+ return MCU_CIPHER_GCMP;
case WLAN_CIPHER_SUITE_GCMP_256:
- return MT_CIPHER_GCMP_256;
+ return MCU_CIPHER_GCMP_256;
case WLAN_CIPHER_SUITE_SMS4:
- return MT_CIPHER_WAPI;
+ return MCU_CIPHER_WAPI;
default:
return MT_CIPHER_NONE;
}
@@ -1060,14 +1060,14 @@ mt7915_mcu_sta_key_tlv(struct mt7915_sta *msta, struct sk_buff *skb,
sec_key = &sec->key[0];
sec_key->cipher_len = sizeof(*sec_key);
- if (cipher == MT_CIPHER_BIP_CMAC_128) {
- sec_key->cipher_id = MT_CIPHER_AES_CCMP;
+ if (cipher == MCU_CIPHER_BIP_CMAC_128) {
+ sec_key->cipher_id = MCU_CIPHER_AES_CCMP;
sec_key->key_id = bip->keyidx;
sec_key->key_len = 16;
memcpy(sec_key->key, bip->key, 16);
sec_key = &sec->key[1];
- sec_key->cipher_id = MT_CIPHER_BIP_CMAC_128;
+ sec_key->cipher_id = MCU_CIPHER_BIP_CMAC_128;
sec_key->cipher_len = sizeof(*sec_key);
sec_key->key_len = 16;
memcpy(sec_key->key, key->key, 16);
@@ -1079,14 +1079,14 @@ mt7915_mcu_sta_key_tlv(struct mt7915_sta *msta, struct sk_buff *skb,
sec_key->key_len = key->keylen;
memcpy(sec_key->key, key->key, key->keylen);
- if (cipher == MT_CIPHER_TKIP) {
+ if (cipher == MCU_CIPHER_TKIP) {
/* Rx/Tx MIC keys are swapped */
memcpy(sec_key->key + 16, key->key + 24, 8);
memcpy(sec_key->key + 24, key->key + 16, 8);
}
/* store key_conf for BIP batch update */
- if (cipher == MT_CIPHER_AES_CCMP) {
+ if (cipher == MCU_CIPHER_AES_CCMP) {
memcpy(bip->key, key->key, key->keylen);
bip->keyidx = key->keyidx;
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
index 2d584142c27b..1a865ef81a43 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
@@ -1023,18 +1023,17 @@ enum {
STA_REC_MAX_NUM
};
-enum mt7915_cipher_type {
- MT_CIPHER_NONE,
- MT_CIPHER_WEP40,
- MT_CIPHER_WEP104,
- MT_CIPHER_WEP128,
- MT_CIPHER_TKIP,
- MT_CIPHER_AES_CCMP,
- MT_CIPHER_CCMP_256,
- MT_CIPHER_GCMP,
- MT_CIPHER_GCMP_256,
- MT_CIPHER_WAPI,
- MT_CIPHER_BIP_CMAC_128,
+enum mcu_cipher_type {
+ MCU_CIPHER_WEP40 = 1,
+ MCU_CIPHER_WEP104,
+ MCU_CIPHER_WEP128,
+ MCU_CIPHER_TKIP,
+ MCU_CIPHER_AES_CCMP,
+ MCU_CIPHER_CCMP_256,
+ MCU_CIPHER_GCMP,
+ MCU_CIPHER_GCMP_256,
+ MCU_CIPHER_WAPI,
+ MCU_CIPHER_BIP_CMAC_128,
};
enum {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
index c4b144391a8e..b7af252a0091 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
@@ -378,14 +378,27 @@ int mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
u8 *data = (u8 *)rxd;
if (status->flag & RX_FLAG_DECRYPTED) {
- status->iv[0] = data[5];
- status->iv[1] = data[4];
- status->iv[2] = data[3];
- status->iv[3] = data[2];
- status->iv[4] = data[1];
- status->iv[5] = data[0];
-
- insert_ccmp_hdr = FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ switch (FIELD_GET(MT_RXD1_NORMAL_SEC_MODE, rxd1)) {
+ case MT_CIPHER_AES_CCMP:
+ case MT_CIPHER_CCMP_CCX:
+ case MT_CIPHER_CCMP_256:
+ insert_ccmp_hdr =
+ FIELD_GET(MT_RXD2_NORMAL_FRAG, rxd2);
+ fallthrough;
+ case MT_CIPHER_TKIP:
+ case MT_CIPHER_TKIP_NO_MIC:
+ case MT_CIPHER_GCMP:
+ case MT_CIPHER_GCMP_256:
+ status->iv[0] = data[5];
+ status->iv[1] = data[4];
+ status->iv[2] = data[3];
+ status->iv[3] = data[2];
+ status->iv[4] = data[1];
+ status->iv[5] = data[0];
+ break;
+ default:
+ break;
+ }
}
rxd += 4;
if ((u8 *)rxd - skb->data >= skb->len)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
index a4f070cd78fd..02da127e9126 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
@@ -87,28 +87,28 @@ struct mt7921_fw_region {
#define to_wcid_lo(id) FIELD_GET(GENMASK(7, 0), (u16)id)
#define to_wcid_hi(id) FIELD_GET(GENMASK(9, 8), (u16)id)
-static enum mt7921_cipher_type
+static enum mcu_cipher_type
mt7921_mcu_get_cipher(int cipher)
{
switch (cipher) {
case WLAN_CIPHER_SUITE_WEP40:
- return MT_CIPHER_WEP40;
+ return MCU_CIPHER_WEP40;
case WLAN_CIPHER_SUITE_WEP104:
- return MT_CIPHER_WEP104;
+ return MCU_CIPHER_WEP104;
case WLAN_CIPHER_SUITE_TKIP:
- return MT_CIPHER_TKIP;
+ return MCU_CIPHER_TKIP;
case WLAN_CIPHER_SUITE_AES_CMAC:
- return MT_CIPHER_BIP_CMAC_128;
+ return MCU_CIPHER_BIP_CMAC_128;
case WLAN_CIPHER_SUITE_CCMP:
- return MT_CIPHER_AES_CCMP;
+ return MCU_CIPHER_AES_CCMP;
case WLAN_CIPHER_SUITE_CCMP_256:
- return MT_CIPHER_CCMP_256;
+ return MCU_CIPHER_CCMP_256;
case WLAN_CIPHER_SUITE_GCMP:
- return MT_CIPHER_GCMP;
+ return MCU_CIPHER_GCMP;
case WLAN_CIPHER_SUITE_GCMP_256:
- return MT_CIPHER_GCMP_256;
+ return MCU_CIPHER_GCMP_256;
case WLAN_CIPHER_SUITE_SMS4:
- return MT_CIPHER_WAPI;
+ return MCU_CIPHER_WAPI;
default:
return MT_CIPHER_NONE;
}
@@ -579,14 +579,14 @@ mt7921_mcu_sta_key_tlv(struct mt7921_sta *msta, struct sk_buff *skb,
sec_key = &sec->key[0];
sec_key->cipher_len = sizeof(*sec_key);
- if (cipher == MT_CIPHER_BIP_CMAC_128) {
- sec_key->cipher_id = MT_CIPHER_AES_CCMP;
+ if (cipher == MCU_CIPHER_BIP_CMAC_128) {
+ sec_key->cipher_id = MCU_CIPHER_AES_CCMP;
sec_key->key_id = bip->keyidx;
sec_key->key_len = 16;
memcpy(sec_key->key, bip->key, 16);
sec_key = &sec->key[1];
- sec_key->cipher_id = MT_CIPHER_BIP_CMAC_128;
+ sec_key->cipher_id = MCU_CIPHER_BIP_CMAC_128;
sec_key->cipher_len = sizeof(*sec_key);
sec_key->key_len = 16;
memcpy(sec_key->key, key->key, 16);
@@ -598,14 +598,14 @@ mt7921_mcu_sta_key_tlv(struct mt7921_sta *msta, struct sk_buff *skb,
sec_key->key_len = key->keylen;
memcpy(sec_key->key, key->key, key->keylen);
- if (cipher == MT_CIPHER_TKIP) {
+ if (cipher == MCU_CIPHER_TKIP) {
/* Rx/Tx MIC keys are swapped */
memcpy(sec_key->key + 16, key->key + 24, 8);
memcpy(sec_key->key + 24, key->key + 16, 8);
}
/* store key_conf for BIP batch update */
- if (cipher == MT_CIPHER_AES_CCMP) {
+ if (cipher == MCU_CIPHER_AES_CCMP) {
memcpy(bip->key, key->key, key->keylen);
bip->keyidx = key->keyidx;
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
index 2fdc62367b3f..4028c667bd68 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
@@ -214,18 +214,17 @@ struct sta_rec_sec {
struct sec_key key[2];
} __packed;
-enum mt7921_cipher_type {
- MT_CIPHER_NONE,
- MT_CIPHER_WEP40,
- MT_CIPHER_WEP104,
- MT_CIPHER_WEP128,
- MT_CIPHER_TKIP,
- MT_CIPHER_AES_CCMP,
- MT_CIPHER_CCMP_256,
- MT_CIPHER_GCMP,
- MT_CIPHER_GCMP_256,
- MT_CIPHER_WAPI,
- MT_CIPHER_BIP_CMAC_128,
+enum mcu_cipher_type {
+ MCU_CIPHER_WEP40 = 1,
+ MCU_CIPHER_WEP104,
+ MCU_CIPHER_WEP128,
+ MCU_CIPHER_TKIP,
+ MCU_CIPHER_AES_CCMP,
+ MCU_CIPHER_CCMP_256,
+ MCU_CIPHER_GCMP,
+ MCU_CIPHER_GCMP_256,
+ MCU_CIPHER_WAPI,
+ MCU_CIPHER_BIP_CMAC_128,
};
enum {
--
2.30.2
next prev parent reply other threads:[~2021-07-15 18:59 UTC|newest]
Thread overview: 259+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-15 18:36 [PATCH 5.12 000/242] 5.12.18-rc1 review Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 001/242] drm/mxsfb: Dont select DRM_KMS_FB_HELPER Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 002/242] drm/zte: " Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 003/242] drm/ast: Fixed CVE for DP501 Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 004/242] drm/amd/display: fix HDCP reset sequence on reinitialize Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 005/242] drm/amd/amdgpu/sriov disable all ip hw status by default Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 006/242] drm/vc4: fix argument ordering in vc4_crtc_get_margins() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 007/242] drm/bridge: nwl-dsi: Force a full modeset when crtc_state->active is changed to be true Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 008/242] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 009/242] drm/amdgpu: change the default timeout for kernel compute queues Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 010/242] drm/amd/display: fix use_max_lb flag for 420 pixel formats Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 011/242] clk: renesas: rcar-usb2-clock-sel: Fix error handling in .probe() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 012/242] hugetlb: clear huge pte during flush function on mips platform Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 013/242] atm: iphase: fix possible use-after-free in ia_module_exit() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 014/242] mISDN: fix possible use-after-free in HFC_cleanup() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 015/242] atm: nicstar: Fix possible use-after-free in nicstar_cleanup() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 016/242] net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 017/242] drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 018/242] net: mdio: ipq8064: add regmap config to disable REGCACHE Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 019/242] drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 020/242] reiserfs: add check for invalid 1st journal block Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 021/242] drm/virtio: Fix double free on probe failure Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 022/242] net: mdio: provide shim implementation of devm_of_mdiobus_register Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 023/242] net/sched: cls_api: increase max_reclassify_loop Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 024/242] pinctrl: equilibrium: Add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 025/242] drm/scheduler: Fix hang when sched_entity released Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 026/242] drm/sched: Avoid data corruptions Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 027/242] udf: Fix NULL pointer dereference in udf_symlink function Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 028/242] net: xilinx_emaclite: Do not print real IOMEM pointer Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 029/242] drm/vc4: Fix clock source for VEC PixelValve on BCM2711 Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 030/242] drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 031/242] e100: handle eeprom as little endian Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 032/242] igb: handle vlan types with checker enabled Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 033/242] igb: fix assignment on big endian machines Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 034/242] drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 035/242] clk: renesas: r8a77995: Add ZA2 clock Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 036/242] drm/amd/display: fix odm scaling Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 037/242] net/mlx5e: IPsec/rep_tc: Fix rep_tc_update_skb drops IPsec packet Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 038/242] net/mlx5: Fix lag port remapping logic Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 039/242] drm: rockchip: add missing registers for RK3188 Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 040/242] drm: rockchip: add missing registers for RK3066 Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 041/242] net: stmmac: the XPCS obscures a potential "PHY not found" error Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 042/242] RDMA/rtrs: Change MAX_SESS_QUEUE_DEPTH Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 043/242] clk: tegra: Fix refcounting of gate clocks Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 044/242] clk: tegra: Ensure that PLLU configuration is applied properly Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 045/242] drm: bridge: cdns-mhdp8546: Fix PM reference leak in Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 046/242] virtio-net: Add validation for used length Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 047/242] ipv6: use prandom_u32() for ID generation Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 048/242] MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B) Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 049/242] MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 050/242] drm/amdgpu: fix sdma firmware version error in sriov Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 051/242] drm/amd/display: Avoid HDCP over-read and corruption Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 052/242] drm/amdgpu: remove unsafe optimization to drop preamble ib Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 053/242] clk: tegra: tegra124-emc: Fix clock imbalance in emc_set_timing() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 054/242] net: tcp better handling of reordering then loss cases Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 055/242] RDMA/cxgb4: Fix missing error code in create_qp() Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 056/242] dm space maps: dont reset space map allocation cursor when committing Greg Kroah-Hartman
2021-07-15 18:36 ` [PATCH 5.12 057/242] dm writecache: dont split bios when overwriting contiguous cache content Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 058/242] dm: Fix dm_accept_partial_bio() relative to zone management commands Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 059/242] block: introduce BIO_ZONE_WRITE_LOCKED bio flag Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 060/242] net: bridge: mrp: Update ring transitions Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 061/242] pinctrl: mcp23s08: fix race condition in irq handler Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 062/242] ice: set the value of global config lock timeout longer Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 063/242] ice: fix clang warning regarding deadcode.DeadStores Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 064/242] virtio_net: Remove BUG() to avoid machine dead Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 065/242] net: mscc: ocelot: check return value after calling platform_get_resource() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 066/242] net: bcmgenet: " Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 067/242] net: mvpp2: " Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 068/242] net: micrel: " Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 069/242] net: moxa: Use devm_platform_get_and_ioremap_resource() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 070/242] drm/amd/display: Fix DCN 3.01 DSCCLK validation Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 071/242] drm/amd/display: Update scaling settings on modeset Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 072/242] drm/amd/display: Release MST resources on switch from MST to SST Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 073/242] drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7 Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 074/242] drm/amd/display: Fix off-by-one error in DML Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 075/242] drm/amd/display: Fix crash during MPO + ODM combine mode recalculation Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 076/242] net: phy: realtek: add delay to fix RXC generation issue Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 077/242] selftests: Clean forgotten resources as part of cleanup() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 078/242] net: sgi: ioc3-eth: check return value after calling platform_get_resource() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 079/242] drm/amdkfd: use allowed domain for vmbo validation Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 080/242] fjes: check return value after calling platform_get_resource() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 081/242] selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 082/242] r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 083/242] drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 084/242] ibmvnic: fix kernel build warnings in build_hdr_descs_arr Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 085/242] xfrm: Fix error reporting in xfrm_state_construct Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 086/242] dm writecache: commit just one block, not a full page Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 087/242] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 088/242] wl1251: Fix possible buffer overflow in wl1251_cmd_scan Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 089/242] cw1200: add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 090/242] drm/amdkfd: fix circular locking on get_wave_state Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 091/242] drm/amdkfd: Fix circular lock in nocpsch path Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 092/242] net: hsr: dont check sequence number if tag removal is offloaded Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 093/242] bpf: Fix up register-based shifts in interpreter to silence KUBSAN Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 094/242] ice: fix incorrect payload indicator on PTYPE Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 095/242] ice: mark PTYPE 2 as reserved Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 096/242] mt76: mt7615: fix fixed-rate tx status reporting Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 097/242] mt76: dma: use ieee80211_tx_status_ext to free packets when tx fails Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 098/242] net: fix mistake path for netdev_features_strings Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 099/242] net: ipa: Add missing of_node_put() in ipa_firmware_load() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 100/242] net: sched: fix error return code in tcf_del_walker() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 101/242] io_uring: fix false WARN_ONCE Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 102/242] drm/amdgpu: fix bad address translation for sienna_cichlid Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 103/242] drm/amdkfd: Walk through list with dqm lock hold Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 104/242] mt76: mt7915: fix tssi indication field of DBDC NICs Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 105/242] mt76: mt7915: fix IEEE80211_HE_PHY_CAP7_MAX_NC for station mode Greg Kroah-Hartman
2021-07-15 18:37 ` Greg Kroah-Hartman [this message]
2021-07-15 18:37 ` [PATCH 5.12 107/242] rtl8xxxu: Fix device info for RTL8192EU devices Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 108/242] MIPS: add PMD table accounting into MIPSpmd_alloc_one Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 109/242] net: fec: add FEC_QUIRK_HAS_MULTI_QUEUES represents i.MX6SX ENET IP Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 110/242] net: fec: add ndo_select_queue to fix TX bandwidth fluctuations Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 111/242] atm: nicstar: use dma_free_coherent instead of kfree Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 112/242] atm: nicstar: register the interrupt handler in the right place Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 113/242] vsock: notify server to shutdown when client has pending signal Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 114/242] drm/amd/display: Fix edp_bootup_bl_level initialization issue Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 115/242] RDMA/rxe: Dont overwrite errno from ib_umem_get() Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 116/242] iwlwifi: mvm: dont change band on bound PHY contexts Greg Kroah-Hartman
2021-07-15 18:37 ` [PATCH 5.12 117/242] iwlwifi: mvm: apply RX diversity per PHY context Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 118/242] iwlwifi: mvm: fix error print when session protection ends Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 119/242] iwlwifi: pcie: free IML DMA memory allocation Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 120/242] iwlwifi: pcie: fix context info freeing Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 121/242] rtw88: 8822c: update RF parameter tables to v62 Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 122/242] rtw88: add quirks to disable pci capabilities Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 123/242] sfc: avoid double pci_remove of VFs Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 124/242] sfc: error code if SRIOV cannot be disabled Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 125/242] wireless: wext-spy: Fix out-of-bounds warning Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 126/242] cfg80211: fix default HE tx bitrate mask in 2G band Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 127/242] mac80211: consider per-CPU statistics if present Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 128/242] mac80211_hwsim: add concurrent channels scanning support over virtio Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 129/242] mac80211: Properly WARN on HW scan before restart Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 130/242] IB/isert: Align target max I/O size to initiator size Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 131/242] media, bpf: Do not copy more entries than user space requested Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 132/242] net: retrieve netns cookie via getsocketopt Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 133/242] net: ip: avoid OOM kills with large UDP sends over loopback Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 134/242] RDMA/cma: Fix rdma_resolve_route() memory leak Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 135/242] Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 136/242] Bluetooth: Fix the HCI to MGMT status conversion table Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 137/242] Bluetooth: Fix alt settings for incoming SCO with transparent coding format Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 138/242] Bluetooth: Shutdown controller after workqueues are flushed or cancelled Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 139/242] Bluetooth: btusb: Add a new QCA_ROME device (0cf3:e500) Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 140/242] Bluetooth: L2CAP: Fix invalid access if ECRED Reconfigure fails Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 141/242] Bluetooth: L2CAP: Fix invalid access on ECRED Connection response Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 142/242] Bluetooth: btusb: Add support USB ALT 3 for WBS Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 143/242] Bluetooth: mgmt: Fix the command returns garbage parameter value Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 144/242] Bluetooth: btusb: use default nvm if boardID is 0 for wcn6855 Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 145/242] Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 146/242] sched/fair: Ensure _sum and _avg values stay consistent Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 147/242] bpf: Fix false positive kmemleak report in bpf_ringbuf_area_alloc() Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 148/242] flow_offload: action should not be NULL when it is referenced Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 149/242] sctp: validate from_addr_param return Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 150/242] sctp: add size validation when walking chunks Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 151/242] MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 152/242] MIPS: set mips32r5 for virt extensions Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 153/242] MIPS: CI20: Reduce clocksource to 750 kHz Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 154/242] PCI: tegra194: Fix host initialization during resume Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 155/242] selftests/resctrl: Fix incorrect parsing of option "-t" Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 156/242] MIPS: MT extensions are not available on MIPS32r1 Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 157/242] mm/mremap: hold the rmap lock in write mode when moving page table entries Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 158/242] powerpc/mm: Fix lockup on kernel exec fault Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 159/242] powerpc/barrier: Avoid collision with clangs __lwsync macro Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 160/242] powerpc/powernv/vas: Release reference to tgid during window close Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 161/242] drm/amdgpu: add new dimgrey cavefish DID Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 162/242] drm/amdgpu: Update NV SIMD-per-CU to 2 Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 163/242] drm/amdgpu: enable sdma0 tmz for Raven/Renoir(V2) Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 164/242] drm/amdgpu: fix NAK-G generation during PCI-e link width switch Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 165/242] drm/amdgpu: fix the hang caused by PCIe " Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 166/242] drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create() Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 167/242] drm/radeon: Call radeon_suspend_kms() in radeon_pci_shutdown() for Loongson64 Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 168/242] drm/vc4: txp: Properly set the possible_crtcs mask Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 169/242] drm/vc4: crtc: Skip the TXP Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 170/242] drm/vc4: hdmi: Prevent clock unbalance Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 171/242] drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info() Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 172/242] drm/rockchip: dsi: remove extra component_del() call Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 173/242] drm/amd/display: fix incorrrect valid irq check Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 174/242] pinctrl/amd: Add device HID for new AMD GPIO controller Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 175/242] drm/amd/display: Reject non-zero src_y and src_x for video planes Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 176/242] drm/ingenic: Fix pixclock rate for 24-bit serial panels Greg Kroah-Hartman
2021-07-15 18:38 ` [PATCH 5.12 177/242] drm/tegra: Dont set allow_fb_modifiers explicitly Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 178/242] drm/msm/mdp4: Fix modifier support enabling Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 179/242] drm/arm/malidp: Always list modifiers Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 180/242] drm/nouveau: Dont set allow_fb_modifiers explicitly Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 181/242] drm/ingenic: Switch IPU plane to type OVERLAY Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 182/242] drm/i915/display: Do not zero past infoframes.vsc Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 183/242] mmc: sdhci-acpi: Disable write protect detection on Toshiba Encore 2 WT8-B Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 184/242] mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 185/242] mmc: core: clear flags before allowing to retune Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 186/242] mmc: core: Allow UHS-I voltage switch for SDSC cards if supported Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 187/242] docs: Makefile: Use CONFIG_SHELL not SHELL Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 188/242] ata: ahci_sunxi: Disable DIPM Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 189/242] arm64: tlb: fix the TTL value of tlb_get_level Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 190/242] cpu/hotplug: Cure the cpusets trainwreck Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 191/242] clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 192/242] fpga: stratix10-soc: Add missing fpga_mgr_free() call Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 193/242] ASoC: tegra: Set driver_name=tegra for all machine drivers Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 194/242] mwifiex: bring down link before deleting interface Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 195/242] i40e: fix PTP on 5Gb links Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 196/242] qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 197/242] ipmi/watchdog: Stop watchdog timer when the current action is none Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 198/242] xfrm: policy: Read seqcount outside of rcu-read side in xfrm_policy_lookup_bytype Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 199/242] thermal/drivers/int340x/processor_thermal: Fix tcc setting Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 200/242] ubifs: Fix races between xattr_{set|get} and listxattr operations Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 201/242] power: supply: ab8500: Fix an old bug Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 202/242] mfd: syscon: Free the allocated name field of struct regmap_config Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 203/242] nvmem: core: add a missing of_node_put Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 204/242] lkdtm/bugs: XFAIL UNALIGNED_LOAD_STORE_WRITE Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 205/242] selftests/lkdtm: Fix expected text for CR4 pinning Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 206/242] extcon: intel-mrfld: Sync hardware and software state on init Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 207/242] lkdtm: Enable DOUBLE_FAULT on all architectures Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 208/242] seq_buf: Fix overflow in seq_buf_putmem_hex() Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 209/242] rq-qos: fix missed wake-ups in rq_qos_throttle try two Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 210/242] tracing: Simplify & fix saved_tgids logic Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 211/242] tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 212/242] ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 213/242] coresight: Propagate symlink failure Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 214/242] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 215/242] dm zoned: check zone capacity Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 216/242] dm writecache: flush origin device when writing and cache is full Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 217/242] dm btree remove: assign new_root only when removal succeeds Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 218/242] PCI: Leave Apple Thunderbolt controllers on for s2idle or standby Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 219/242] PCI: aardvark: Fix checking for PIO Non-posted Request Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 220/242] PCI: aardvark: Implement workaround for the readback value of VEND_ID Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 221/242] media: subdev: disallow ioctl for saa6588/davinci Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 222/242] media: i2c: ccs-core: fix pm_runtime_get_sync() usage count Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 223/242] media: dtv5100: fix control-request directions Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 224/242] media: zr364xx: fix memory leak in zr364xx_start_readpipe Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 225/242] media: ccs: Fix the op_pll_multiplier address Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 226/242] media: gspca/sq905: fix control-request direction Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 227/242] media: gspca/sunplus: fix zero-length control requests Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 228/242] media: rtl28xxu: fix zero-length control request Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 229/242] media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 230/242] s390/vdso: always enable vdso Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 231/242] s390/vdso64: add sigreturn,rt_sigreturn and restart_syscall Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 232/242] s390/vdso: rename VDSO64_LBASE to VDSO_LBASE Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 233/242] s390/vdso: add minimal compat vdso Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 234/242] s390/signal: switch to using vdso for sigreturn and syscall restart Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 235/242] dm writecache: write at least 4k when committing Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 236/242] pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq() Greg Kroah-Hartman
2021-07-15 18:39 ` [PATCH 5.12 237/242] drm/ast: Remove reference to struct drm_device.pdev Greg Kroah-Hartman
2021-07-19 9:57 ` Xiaotian Feng
2021-07-19 11:23 ` Greg Kroah-Hartman
2021-07-19 11:43 ` Xiaotian Feng
2021-07-19 13:05 ` Greg Kroah-Hartman
2021-07-19 14:35 ` Thomas Zimmermann
2021-07-22 14:12 ` Greg Kroah-Hartman
2021-07-15 18:40 ` [PATCH 5.12 238/242] jfs: fix GPF in diFree Greg Kroah-Hartman
2021-07-15 18:40 ` [PATCH 5.12 239/242] media: v4l2-core: explicitly clear ioctl input data Greg Kroah-Hartman
2021-07-15 18:40 ` [PATCH 5.12 240/242] smackfs: restrict bytes count in smk_set_cipso() Greg Kroah-Hartman
2021-07-15 18:40 ` [PATCH 5.12 241/242] ext4: fix memory leak in ext4_fill_super Greg Kroah-Hartman
2021-07-15 18:40 ` [PATCH 5.12 242/242] f2fs: fix to avoid racing on fsync_entry_slab by multi filesystem instances Greg Kroah-Hartman
2021-07-15 21:49 ` [PATCH 5.12 000/242] 5.12.18-rc1 review Daniel Díaz
2021-07-16 18:08 ` Greg Kroah-Hartman
2021-07-19 5:40 ` Sven Schnelle
2021-07-19 6:10 ` Greg Kroah-Hartman
2021-07-20 5:43 ` Sven Schnelle
2021-07-15 22:30 ` Florian Fainelli
2021-07-16 11:35 ` Jon Hunter
2021-07-16 13:40 ` Guenter Roeck
2021-07-16 18:02 ` Greg Kroah-Hartman
2021-07-16 18:07 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210715182611.728266353@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nbd@nbd.name \
--cc=ryder.lee@mediatek.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=xing.song@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox