initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,29 @@
From 99f1e8bd7172ddf9613db3531a8b37921ed73351 Mon Sep 17 00:00:00 2001
From: Jesper Skov <jb1811@jyskebank.dk>
Date: Fri, 25 Oct 2019 10:05:41 +0200
Subject: [PATCH] Fix implicit fallthrough comments for kernel 5.3
[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/e8a30a4c5a80efbbd5b1dbfe11b22916df4492f9.patch]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Christian Stewart <christian@paral.in>
---
core/rtw_mlme_ext.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/core/rtw_mlme_ext.c b/core/rtw_mlme_ext.c
index 24565ea..380f507 100644
--- a/core/rtw_mlme_ext.c
+++ b/core/rtw_mlme_ext.c
@@ -758,7 +758,9 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame)
else
ptable->func = &OnAuthClient;
//pass through
+ //fallthrough
case WIFI_ASSOCREQ:
+ //fallthrough
case WIFI_REASSOCREQ:
_mgt_dispatcher(padapter, ptable, precv_frame);
#ifdef CONFIG_HOSTAPD_MLME
--
2.28.0
@@ -0,0 +1,169 @@
From cde2dbf6e94e00fcf198422b03de01d3090675d9 Mon Sep 17 00:00:00 2001
From: Jesper Skov <jb1811@jyskebank.dk>
Date: Fri, 25 Oct 2019 10:10:29 +0200
Subject: [PATCH] Fix kernel 5.3 driver crashes, from aircrack-ng/rtl8812au#421
[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/822b485d36d6f72304a219c3be228f40968b542b.patch]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Christian Stewart <christian@paral.in>
---
os_dep/linux/rtw_cfgvendor.c | 45 ++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/os_dep/linux/rtw_cfgvendor.c b/os_dep/linux/rtw_cfgvendor.c
index e7ba90a..81fc8af 100644
--- a/os_dep/linux/rtw_cfgvendor.c
+++ b/os_dep/linux/rtw_cfgvendor.c
@@ -1173,6 +1173,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = BRCM_VENDOR_SCMD_PRIV_STR
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_priv_string_handler
},
#if defined(GSCAN_SUPPORT) && 0
@@ -1182,6 +1185,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_GET_CAPABILITIES
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_gscan_get_capabilities
},
{
@@ -1190,6 +1196,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_SET_CONFIG
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_set_scan_cfg
},
{
@@ -1198,6 +1207,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_set_batch_scan_cfg
},
{
@@ -1206,6 +1218,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_ENABLE_GSCAN
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_initiate_gscan
},
{
@@ -1214,6 +1229,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_enable_full_scan_result
},
{
@@ -1222,6 +1240,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_SET_HOTLIST
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_hotlist_cfg
},
{
@@ -1230,6 +1251,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_significant_change_cfg
},
{
@@ -1238,6 +1262,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_gscan_get_batch_results
},
{
@@ -1246,6 +1273,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_gscan_get_channel_list
},
#endif /* GSCAN_SUPPORT */
@@ -1256,6 +1286,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = RTT_SUBCMD_SET_CONFIG
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_rtt_set_config
},
{
@@ -1264,6 +1297,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = RTT_SUBCMD_CANCEL_CONFIG
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_rtt_cancel_config
},
{
@@ -1272,6 +1308,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = RTT_SUBCMD_GETCAPABILITY
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = wl_cfgvendor_rtt_get_capability
},
#endif /* RTT_SUPPORT */
@@ -1281,6 +1320,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = rtw_cfgvendor_get_feature_set
},
{
@@ -1289,6 +1331,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = {
.subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX
},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
+ .policy = VENDOR_CMD_RAW_DATA,
+#endif
.doit = rtw_cfgvendor_get_feature_set_matrix
}
};
--
2.28.0
@@ -0,0 +1,339 @@
From 5b6641978e8fa68bca05d224a61f8513b010eda8 Mon Sep 17 00:00:00 2001
From: Coleman <omegacoleman@gmail.com>
Date: Fri, 17 Jul 2020 08:53:00 +0800
Subject: [PATCH] Fix using sprintf for extending string, which causes
undefined behavior
[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/be57045a0933d64e958878696883e9cf998e1bf3.patch]
Signed-off-by: Coleman <omegacoleman@gmail.com>
Signed-off-by: Christian Stewart <christian@paral.in>
---
core/rtw_mp.c | 2 +-
os_dep/linux/ioctl_linux.c | 108 ++++++++++++++++++-------------------
2 files changed, 55 insertions(+), 55 deletions(-)
diff --git a/core/rtw_mp.c b/core/rtw_mp.c
index c2e400d..989bb3e 100644
--- a/core/rtw_mp.c
+++ b/core/rtw_mp.c
@@ -1871,7 +1871,7 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data)
} else {
psd_data = rtw_GetPSDData(pAdapter, i);
}
- sprintf(data, "%s%x ", data, psd_data);
+ sprintf(data + strlen(data), "%x ", psd_data);
i++;
}
diff --git a/os_dep/linux/ioctl_linux.c b/os_dep/linux/ioctl_linux.c
index c74a153..9543fa3 100644
--- a/os_dep/linux/ioctl_linux.c
+++ b/os_dep/linux/ioctl_linux.c
@@ -9080,19 +9080,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i = 0; i < EFUSE_MAP_SIZE; i += 16) {
// DBG_871X("0x%02x\t", i);
- sprintf(extra, "%s0x%02x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%02x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]);
}
// DBG_871X("\t");
- sprintf(extra, "%s\t", extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]);
}
// DBG_871X("\n");
- sprintf(extra,"%s\n",extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0], "realmap") == 0) {
@@ -9107,19 +9107,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i = 0; i < EFUSE_MAP_SIZE; i += 16) {
// DBG_871X("0x%02x\t", i);
- sprintf(extra, "%s0x%02x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%02x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra, "%s\t", extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra,"%s\n",extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0], "rmap") == 0) {
@@ -9158,7 +9158,7 @@ static int rtw_mp_efuse_get(struct net_device *dev,
*extra = 0;
for (i=0; i<cnts; i++) {
// DBG_871X("0x%02x ", data[i]);
- sprintf(extra, "%s0x%02X ", extra, data[i]);
+ sprintf(extra + strlen(extra), "0x%02X ", data[i]);
}
// DBG_871X("}\n");
} else if (strcmp(tmp[0], "realraw") == 0) {
@@ -9174,17 +9174,17 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n0x00\t");
for (i=0; i< mapLen; i++) {
// DBG_871X("%02X", rawdata[i]);
- sprintf(extra, "%s%02X", extra, rawdata[i]);
+ sprintf(extra + strlen(extra), "%02X", rawdata[i]);
if ((i & 0xF) == 0xF) {
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
- sprintf(extra, "%s0x%02x\t", extra, i+1);
+ sprintf(extra + strlen(extra), "\n");
+ sprintf(extra + strlen(extra), "0x%02x\t", i+1);
} else if ((i & 0x7) == 0x7) {
// DBG_871X("\t");
- sprintf(extra, "%s \t", extra);
+ sprintf(extra + strlen(extra), " \t");
} else {
// DBG_871X(" ");
- sprintf(extra, "%s ", extra);
+ sprintf(extra + strlen(extra), " ");
}
}
// DBG_871X("}\n");
@@ -9269,10 +9269,10 @@ static int rtw_mp_efuse_get(struct net_device *dev,
*extra = 0;
for (i=0; i<cnts; i++) {
// DBG_871X("%02X", data[i]);
- sprintf(extra, "%s%02X", extra, data[i]);
+ sprintf(extra + strlen(extra), "%02X", data[i]);
if (i != (cnts-1)) {
// DBG_871X(":");
- sprintf(extra,"%s:",extra);
+ sprintf(extra + strlen(extra), ":");
}
}
// DBG_871X("}\n");
@@ -9330,10 +9330,10 @@ static int rtw_mp_efuse_get(struct net_device *dev,
*extra = 0;
for (i=0; i<cnts; i++) {
// DBG_871X("0x%02x", data[i]);
- sprintf(extra, "%s0x%02X", extra, data[i]);
+ sprintf(extra + strlen(extra), "0x%02X", data[i]);
if (i != (cnts-1)) {
// DBG_871X(",");
- sprintf(extra,"%s,",extra);
+ sprintf(extra + strlen(extra), ",");
}
}
// DBG_871X("}\n");
@@ -9355,19 +9355,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i=0; i<512; i+=16) { // set 512 because the iwpriv's extra size have limit 0x7FF
// DBG_871X("0x%03x\t", i);
- sprintf(extra, "%s0x%03x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%03x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra,"%s\t",extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0],"btbmap") == 0) {
@@ -9384,19 +9384,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i=512; i<1024 ; i+=16) {
// DBG_871X("0x%03x\t", i);
- sprintf(extra, "%s0x%03x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%03x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra,"%s\t",extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", data[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0],"btrmap") == 0) {
@@ -9436,7 +9436,7 @@ static int rtw_mp_efuse_get(struct net_device *dev,
// DBG_871X("%s: bt efuse data={", __FUNCTION__);
for (i=0; i<cnts; i++) {
// DBG_871X("0x%02x ", data[i]);
- sprintf(extra, "%s 0x%02X ", extra, data[i]);
+ sprintf(extra + strlen(extra), " 0x%02X ", data[i]);
}
// DBG_871X("}\n");
DBG_871X(FUNC_ADPT_FMT ": BT MAC=[%s]\n", FUNC_ADPT_ARG(padapter), extra);
@@ -9445,19 +9445,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i=0; i<512; i+=16) {
// DBG_871X("0x%03x\t", i);
- sprintf(extra, "%s0x%03x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%03x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra, "%s\t", extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0],"btbfake") == 0) {
@@ -9465,19 +9465,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i=512; i<1024; i+=16) {
// DBG_871X("0x%03x\t", i);
- sprintf(extra, "%s0x%03x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%03x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra, "%s\t", extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
} else if (strcmp(tmp[0],"wlrfkmap")== 0) {
@@ -9485,19 +9485,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
sprintf(extra, "\n");
for (i=0; i<EFUSE_MAP_SIZE; i+=16) {
// DBG_871X("\t0x%02x\t", i);
- sprintf(extra, "%s0x%02x\t", extra, i);
+ sprintf(extra + strlen(extra), "0x%02x\t", i);
for (j=0; j<8; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]);
- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]);
}
// DBG_871X("\t");
- sprintf(extra, "%s\t", extra);
+ sprintf(extra + strlen(extra), "\t");
for (; j<16; j++) {
// DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]);
- sprintf(extra, "%s %02X", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]);
+ sprintf(extra + strlen(extra), " %02X", pEfuseHal->fakeEfuseModifiedMap[i+j]);
}
// DBG_871X("\n");
- sprintf(extra, "%s\n", extra);
+ sprintf(extra + strlen(extra), "\n");
}
// DBG_871X("\n");
@@ -9523,7 +9523,7 @@ static int rtw_mp_efuse_get(struct net_device *dev,
*extra = 0;
for (i=0; i<cnts; i++) {
DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeEfuseModifiedMap[addr+i]);
- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[addr+i]);
+ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeEfuseModifiedMap[addr+i]);
}
} else if (strcmp(tmp[0],"btrfkrmap")== 0) {
if ((tmp[1]==NULL) || (tmp[2]==NULL)) {
@@ -9547,7 +9547,7 @@ static int rtw_mp_efuse_get(struct net_device *dev,
*extra = 0;
for (i=0; i<cnts; i++) {
DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]);
- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[addr+i]);
+ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]);
}
} else {
sprintf(extra, "Command not found!");
@@ -10409,7 +10409,7 @@ static int rtw_mp_read_reg(struct net_device *dev,
pnext++;
if ( *pnext != '\0' ) {
strtout = simple_strtoul (pnext , &ptmp, 16);
- sprintf( extra, "%s %d" ,extra ,strtout );
+ sprintf(extra + strlen(extra), " %d" ,strtout );
} else {
break;
}
@@ -10443,7 +10443,7 @@ static int rtw_mp_read_reg(struct net_device *dev,
pnext++;
if ( *pnext != '\0' ) {
strtout = simple_strtoul (pnext , &ptmp, 16);
- sprintf( extra, "%s %d" ,extra ,strtout );
+ sprintf(extra + strlen(extra), " %d" ,strtout );
} else {
break;
}
@@ -10566,7 +10566,7 @@ static int rtw_mp_read_rf(struct net_device *dev,
pnext++;
if ( *pnext != '\0' ) {
strtou = simple_strtoul (pnext , &ptmp, 16);
- sprintf( extra, "%s %d" ,extra ,strtou );
+ sprintf(extra + strlen(extra), " %d" ,strtou );
} else {
break;
}
@@ -12155,14 +12155,14 @@ todo:
goto exit;
#ifdef CONFIG_RTL8723A
- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x3f));
+ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x3f));
#else
- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x1f));
+ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x1f));
#endif
}
} else {
for (i=4; i<pMptCtx->mptOutLen; i++) {
- sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]);
+ sprintf(extra + strlen(extra), " 0x%x ", pMptCtx->mptOutBuf[i]);
}
}
--
2.28.0
@@ -0,0 +1,79 @@
From 19aee91e45788d594615a9be58fa5d0879ec816a Mon Sep 17 00:00:00 2001
From: youcai <omegacoleman@gmail.com>
Date: Tue, 18 Aug 2020 00:43:16 +0800
Subject: [PATCH] rename sha256_state to rtl_sha256_state to avoid name
conflict with crypto
[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/pull/338/commits/af6f6c1578f16145478326a939bb7593bbcdb4e7.patch]
Signed-off-by: Coleman <omegacoleman@gmail.com>
Signed-off-by: Christian Stewart <christian@paral.in>
---
core/rtw_security.c | 10 +++++-----
include/rtw_security.h | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/core/rtw_security.c b/core/rtw_security.c
index d54e6af..de2d91f 100644
--- a/core/rtw_security.c
+++ b/core/rtw_security.c
@@ -2200,7 +2200,7 @@ BIP_exit:
#ifndef PLATFORM_FREEBSD
/* compress 512-bits */
-static int sha256_compress(struct sha256_state *md, unsigned char *buf)
+static int sha256_compress(struct rtl_sha256_state *md, unsigned char *buf)
{
u32 S[8], W[64], t0, t1;
u32 t;
@@ -2249,7 +2249,7 @@ static int sha256_compress(struct sha256_state *md, unsigned char *buf)
}
/* Initialize the hash state */
-static void sha256_init(struct sha256_state *md)
+static void sha256_init(struct rtl_sha256_state *md)
{
md->curlen = 0;
md->length = 0;
@@ -2270,7 +2270,7 @@ static void sha256_init(struct sha256_state *md)
@param inlen The length of the data (octets)
@return CRYPT_OK if successful
*/
-static int sha256_process(struct sha256_state *md, unsigned char *in,
+static int sha256_process(struct rtl_sha256_state *md, unsigned char *in,
unsigned long inlen)
{
unsigned long n;
@@ -2311,7 +2311,7 @@ static int sha256_process(struct sha256_state *md, unsigned char *in,
@param out [out] The destination of the hash (32 bytes)
@return CRYPT_OK if successful
*/
-static int sha256_done(struct sha256_state *md, unsigned char *out)
+static int sha256_done(struct rtl_sha256_state *md, unsigned char *out)
{
int i;
@@ -2363,7 +2363,7 @@ static int sha256_done(struct sha256_state *md, unsigned char *out)
static int sha256_vector(size_t num_elem, u8 *addr[], size_t *len,
u8 *mac)
{
- struct sha256_state ctx;
+ struct rtl_sha256_state ctx;
size_t i;
sha256_init(&ctx);
diff --git a/include/rtw_security.h b/include/rtw_security.h
index d41014e..98feb69 100644
--- a/include/rtw_security.h
+++ b/include/rtw_security.h
@@ -233,7 +233,7 @@ struct security_priv {
#endif /* DBG_SW_SEC_CNT */
};
-struct sha256_state {
+struct rtl_sha256_state {
u64 length;
u32 state[8], curlen;
u8 buf[64];
--
2.28.0
@@ -0,0 +1,47 @@
From 9421b0763e5f20babb2c0fd437979a71fbac1739 Mon Sep 17 00:00:00 2001
From: Christian Stewart <christian@paral.in>
Date: Tue, 8 Sep 2020 22:46:45 -0700
Subject: [PATCH] disable rtw_mgmt_frame_register on kernel 5.8.0
rtl8812au: fix build for kernel 5.8
[Source: https://github.com/lwfinger/rtl8812au/commit/ec1591b90dd323185717fa42887f96444cca5921.patch]
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Christian Stewart <christian@paral.in>
---
os_dep/linux/ioctl_cfg80211.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index 019daf9..13238cb 100644
--- a/os_dep/linux/ioctl_cfg80211.c
+++ b/os_dep/linux/ioctl_cfg80211.c
@@ -5177,6 +5177,7 @@ exit:
return ret;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0))
struct wireless_dev *wdev,
@@ -5205,6 +5206,7 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy,
exit:
return;
}
+#endif
#if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy,
@@ -6021,7 +6023,9 @@ static struct cfg80211_ops rtw_cfg80211_ops = {
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
.mgmt_tx = cfg80211_rtw_mgmt_tx,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
.mgmt_frame_register = cfg80211_rtw_mgmt_frame_register,
+#endif
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35))
.action = cfg80211_rtw_mgmt_tx,
#endif
--
2.28.0
@@ -0,0 +1,110 @@
From e0ed05200e6e4b86e26e092dc1f16fc8fc1e2b67 Mon Sep 17 00:00:00 2001
From: Christian Stewart <christian@paral.in>
Date: Tue, 8 Sep 2020 23:08:39 -0700
Subject: [PATCH] rtw_proc: convert file_operations to proc_ops for 5.6.x
compat
Signed-off-by: Christian Stewart <christian@paral.in>
[Fix < 5.6.x compile - missing semicolon]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
os_dep/linux/rtw_proc.c | 40 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/os_dep/linux/rtw_proc.c b/os_dep/linux/rtw_proc.c
index 048080a..6295f66 100644
--- a/os_dep/linux/rtw_proc.c
+++ b/os_dep/linux/rtw_proc.c
@@ -65,9 +65,15 @@ inline struct proc_dir_entry *rtw_proc_create_dir(const char *name, struct proc_
}
inline struct proc_dir_entry *rtw_proc_create_entry(const char *name, struct proc_dir_entry *parent,
- const struct file_operations *fops, void * data)
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
+ const struct file_operations *fops,
+ #else
+ const struct proc_ops *fops,
+ #endif
+ void * data
+ )
{
- struct proc_dir_entry *entry;
+ struct proc_dir_entry *entry;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
entry = proc_create_data(name, S_IFREG|S_IRUGO|S_IWUGO, parent, fops, data);
@@ -167,6 +173,7 @@ static ssize_t rtw_drv_proc_write(struct file *file, const char __user *buffer,
return -EROFS;
}
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
static const struct file_operations rtw_drv_proc_fops = {
.owner = THIS_MODULE,
.open = rtw_drv_proc_open,
@@ -175,6 +182,15 @@ static const struct file_operations rtw_drv_proc_fops = {
.release = single_release,
.write = rtw_drv_proc_write,
};
+#else
+static const struct proc_ops rtw_drv_proc_fops = {
+ .proc_open = rtw_drv_proc_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = seq_release,
+ .proc_write = rtw_drv_proc_write,
+};
+#endif
int rtw_drv_proc_init(void)
{
@@ -776,6 +792,7 @@ static ssize_t rtw_adapter_proc_write(struct file *file, const char __user *buff
return -EROFS;
}
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
static const struct file_operations rtw_adapter_proc_fops = {
.owner = THIS_MODULE,
.open = rtw_adapter_proc_open,
@@ -784,6 +801,15 @@ static const struct file_operations rtw_adapter_proc_fops = {
.release = single_release,
.write = rtw_adapter_proc_write,
};
+#else
+static const struct proc_ops rtw_adapter_proc_fops = {
+ .proc_open = rtw_adapter_proc_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = single_release,
+ .proc_write = rtw_adapter_proc_write,
+};
+#endif
int proc_get_odm_dbg_comp(struct seq_file *m, void *v)
{
@@ -1030,6 +1056,7 @@ static ssize_t rtw_odm_proc_write(struct file *file, const char __user *buffer,
return -EROFS;
}
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
static const struct file_operations rtw_odm_proc_fops = {
.owner = THIS_MODULE,
.open = rtw_odm_proc_open,
@@ -1038,6 +1065,15 @@ static const struct file_operations rtw_odm_proc_fops = {
.release = single_release,
.write = rtw_odm_proc_write,
};
+#else
+static const struct proc_ops rtw_odm_proc_fops = {
+ .proc_open = rtw_odm_proc_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = single_release,
+ .proc_write = rtw_odm_proc_write,
+};
+#endif
struct proc_dir_entry *rtw_odm_proc_init(struct net_device *dev)
{
--
2.29.0
+10
View File
@@ -0,0 +1,10 @@
comment "rtl8821au needs a Linux kernel to be built"
depends on !BR2_LINUX_KERNEL
config BR2_PACKAGE_RTL8821AU
bool "rtl8821au"
depends on BR2_LINUX_KERNEL
help
rtl8821au wifi driver
https://github.com/abperiasamy/rtl8812AU_8821AU_linux
+3
View File
@@ -0,0 +1,3 @@
# Locally calculated
sha256 9c8e127dcf2b4d87df546f7f51afdbca0a0561cdba9bcc2689722e1090c46204 rtl8821au-4235b0ec7d7220a6364586d8e25b1e8cb99c36f1.tar.gz
sha256 6d66dec8f6c253a1af2ffd858167c722b1ce3218215446172c81355d0a49e7fc LICENSE
+19
View File
@@ -0,0 +1,19 @@
################################################################################
#
# rtl8821au
#
################################################################################
RTL8821AU_VERSION = 4235b0ec7d7220a6364586d8e25b1e8cb99c36f1
RTL8821AU_SITE = $(call github,abperiasamy,rtl8812AU_8821AU_linux,$(RTL8821AU_VERSION))
RTL8821AU_LICENSE = GPL-2.0
RTL8821AU_LICENSE_FILES = LICENSE
RTL8821AU_MODULE_MAKE_OPTS = \
CONFIG_RTL8812AU_8821AU=m \
KVER=$(LINUX_VERSION_PROBED) \
USER_EXTRA_CFLAGS="-DCONFIG_$(call qstrip,$(BR2_ENDIAN))_ENDIAN \
-Wno-error"
$(eval $(kernel-module))
$(eval $(generic-package))