blob: 3b2b718a95c18a1b43b0cd5538398fdbeb3b90be [file] [log] [blame]
From 83f826c468a145fb205cffe0f5fcc8d69143bb78 Mon Sep 17 00:00:00 2001
From: Evelyn Tsai <evelyn.tsai@mediatek.com>
Date: Tue, 13 Dec 2022 09:04:49 +0800
Subject: [PATCH 15/19] mac80211: mtk: fix build error on Linux Kernel 5.4
---
include/linux/ieee80211.h | 8 +++-----
net/mac80211/rc80211_minstrel_ht.c | 2 ++
net/mac80211/wpa.c | 4 ++--
net/wireless/nl80211.c | 4 ++++
4 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 7969093..6f70394 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -310,11 +310,9 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
struct ieee80211_hdr {
__le16 frame_control;
__le16 duration_id;
- struct_group(addrs,
- u8 addr1[ETH_ALEN];
- u8 addr2[ETH_ALEN];
- u8 addr3[ETH_ALEN];
- );
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 addr3[ETH_ALEN];
__le16 seq_ctrl;
u8 addr4[ETH_ALEN];
} __packed __aligned(2);
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index 33001ec..277fec9 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -10,7 +10,9 @@
#include <linux/random.h>
#include <linux/moduleparam.h>
#include <linux/ieee80211.h>
+#if LINUX_VERSION_IS_GEQ(5,10,0)
#include <linux/minmax.h>
+#endif
#include <net/mac80211.h>
#include "rate.h"
#include "sta_info.h"
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index 20f742b..93ec2f3 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -351,7 +351,7 @@ static u8 ccmp_gcmp_aad(struct sk_buff *skb, u8 *aad)
* FC | A1 | A2 | A3 | SC | [A4] | [QC] */
put_unaligned_be16(len_a, &aad[0]);
put_unaligned(mask_fc, (__le16 *)&aad[2]);
- memcpy(&aad[4], &hdr->addrs, 3 * ETH_ALEN);
+ memcpy(&aad[4], &hdr->addr1, 3 * ETH_ALEN);
/* Mask Seq#, leave Frag# */
aad[22] = *((u8 *) &hdr->seq_ctrl) & 0x0f;
@@ -792,7 +792,7 @@ static void bip_aad(struct sk_buff *skb, u8 *aad)
IEEE80211_FCTL_MOREDATA);
put_unaligned(mask_fc, (__le16 *) &aad[0]);
/* A1 || A2 || A3 */
- memcpy(aad + 2, &hdr->addrs, 3 * ETH_ALEN);
+ memcpy(aad + 2, &hdr->addr1, 3 * ETH_ALEN);
}
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 202f802..1035f74 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -16441,9 +16441,11 @@ static const struct genl_ops nl80211_ops[] = {
/* can be retrieved by unprivileged users */
.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
},
+#if LINUX_VERSION_IS_GEQ(5,10,0)
};
static const struct genl_small_ops nl80211_small_ops[] = {
+#endif
{
.cmd = NL80211_CMD_SET_WIPHY,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
@@ -17280,8 +17282,10 @@ static struct genl_family nl80211_fam __genl_ro_after_init = {
.module = THIS_MODULE,
.ops = nl80211_ops,
.n_ops = ARRAY_SIZE(nl80211_ops),
+#if LINUX_VERSION_IS_GEQ(5,10,0)
.small_ops = nl80211_small_ops,
.n_small_ops = ARRAY_SIZE(nl80211_small_ops),
+#endif
#if LINUX_VERSION_IS_GEQ(6,1,0)
.resv_start_op = NL80211_CMD_REMOVE_LINK_STA + 1,
#endif
--
2.18.0