Compare commits

..

2 Commits

6 changed files with 108 additions and 49 deletions

View File

@ -1,7 +1,7 @@
pkgbase = rtl8812au-openhd-dkms-git pkgbase = rtl8812au-openhd-dkms-git
pkgdesc = Realtek RTL88xxAU WiFi USB driver (with OpenHD patches) pkgdesc = Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)
pkgver = 5.2.20.2.r849.gf21bbe9 pkgver = 5.2.20.2.r855.g28580eb
pkgrel = 3 pkgrel = 4
url = https://github.com/OpenHD/rtl8812au url = https://github.com/OpenHD/rtl8812au
arch = any arch = any
license = GPL2 license = GPL2
@ -11,6 +11,6 @@ pkgbase = rtl8812au-openhd-dkms-git
source = git+https://github.com/OpenHD/rtl8812au.git source = git+https://github.com/OpenHD/rtl8812au.git
source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch
sha256sums = SKIP sha256sums = SKIP
sha256sums = b26147fda4d78d8cc8f7d5f5d331e43a1ffeecb5596e703e3da6a7461a0fd7b2 sha256sums = 040518c8e58cadec1cdafa147d916be25c4c66eb0508726ef6448896e5d4a917
pkgname = rtl8812au-openhd-dkms-git pkgname = rtl8812au-openhd-dkms-git

View File

@ -1,49 +1,62 @@
From 08165cf5c1cb5186b4a1e04fe29eaf3ab6cf4c05 Mon Sep 17 00:00:00 2001
From: Rihards Skuja <rihards@skuja.eu>
Date: Thu, 29 Feb 2024 12:23:32 +0200
Subject: [PATCH] Update beacon change signature to fix build on recent kernels
---
os_dep/linux/ioctl_cfg80211.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index c26bb07..facfd33 100644 index c26bb07..d2d50c9 100644
--- a/os_dep/linux/ioctl_cfg80211.c --- a/os_dep/linux/ioctl_cfg80211.c
+++ b/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c
@@ -4600,24 +4600,24 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev, @@ -4600,24 +4600,36 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
return ret; return ret;
} }
-static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info) -static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info)
+static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_ap_update *info) +static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
+ struct cfg80211_ap_update *info
+#else
+ struct cfg80211_beacon_data *info
+#endif
+)
{ {
int ret = 0; int ret = 0;
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
+ struct cfg80211_beacon_data *beacon_info = &info->beacon;
+#else
+ struct cfg80211_beacon_data *beacon_info = info;
+#endif
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
- ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len); - ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
+ ret = rtw_add_beacon(adapter, info->beacon.head, info->beacon.head_len, info->beacon.tail, info->beacon.tail_len); + ret = rtw_add_beacon(adapter, beacon_info->head, beacon_info->head_len,
+ beacon_info->tail, beacon_info->tail_len);
// In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set // In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
if(ret == 0) { if(ret == 0) {
- if(info->proberesp_ies && info->proberesp_ies_len > 0) { - if(info->proberesp_ies && info->proberesp_ies_len > 0) {
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies, - rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies,
- info->proberesp_ies_len, 0x2/*PROBE_RESP*/); - info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
+ if(info->beacon.proberesp_ies && info->beacon.proberesp_ies_len > 0) { + if(beacon_info->proberesp_ies && beacon_info->proberesp_ies_len > 0) {
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.proberesp_ies, + rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->proberesp_ies,
+ info->beacon.proberesp_ies_len, 0x2/*PROBE_RESP*/); + beacon_info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
} }
- if(info->assocresp_ies && info->assocresp_ies_len > 0) { - if(info->assocresp_ies && info->assocresp_ies_len > 0) {
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies, - rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies,
- info->assocresp_ies_len, 0x4/*ASSOC_RESP*/); - info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
+ if(info->beacon.assocresp_ies && info->beacon.assocresp_ies_len > 0) { + if(beacon_info->assocresp_ies && beacon_info->assocresp_ies_len > 0) {
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.assocresp_ies, + rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->assocresp_ies,
+ info->beacon.assocresp_ies_len, 0x4/*ASSOC_RESP*/); + beacon_info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
} }
} }
-- diff --git a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
2.44.0 index 95dc47f..5a12ae6 100644
--- a/os_dep/linux/usb_intf.c
+++ b/os_dep/linux/usb_intf.c
@@ -329,7 +329,7 @@ struct rtw_usb_drv usb_drv = {
.usbdrv.supports_autosuspend = 1,
#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
.usbdrv.drvwrap.driver.shutdown = rtw_dev_shutdown,
#else
.usbdrv.driver.shutdown = rtw_dev_shutdown,

View File

@ -2,9 +2,9 @@
pkgname=rtl8812au-openhd-dkms-git pkgname=rtl8812au-openhd-dkms-git
_modname=88XXau_ohd _modname=88XXau_ohd
pkgver=5.2.20.2.r849.gf21bbe9 pkgver=5.2.20.2.r855.g28580eb
_pkgver=5.2.20.2 _pkgver=5.2.20.2
pkgrel=3 pkgrel=4
pkgdesc='Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)' pkgdesc='Realtek RTL88xxAU WiFi USB driver (with OpenHD patches)'
arch=(any) arch=(any)
url='https://github.com/OpenHD/rtl8812au' url='https://github.com/OpenHD/rtl8812au'
@ -12,7 +12,8 @@ license=(GPL2)
depends=('dkms' 'bc') depends=('dkms' 'bc')
makedepends=('git') makedepends=('git')
source=('git+https://github.com/OpenHD/rtl8812au.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch') source=('git+https://github.com/OpenHD/rtl8812au.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch')
sha256sums=('SKIP' 'b26147fda4d78d8cc8f7d5f5d331e43a1ffeecb5596e703e3da6a7461a0fd7b2') sha256sums=('SKIP'
'040518c8e58cadec1cdafa147d916be25c4c66eb0508726ef6448896e5d4a917')
pkgver() { pkgver() {
cd "${srcdir}/rtl8812au" cd "${srcdir}/rtl8812au"

View File

@ -1,7 +1,7 @@
pkgbase = rtl88x2bu-openhd-dkms-git pkgbase = rtl88x2bu-openhd-dkms-git
pkgdesc = Realtek RTL88x2BU WiFi USB driver (with OpenHD patches) pkgdesc = Realtek RTL88x2BU WiFi USB driver (with OpenHD patches)
pkgver = 5.13.1.r222.gaad91d6 pkgver = 5.13.1.r222.gaad91d6
pkgrel = 3 pkgrel = 4
url = https://github.com/OpenHD/rtl88x2bu url = https://github.com/OpenHD/rtl88x2bu
arch = any arch = any
license = GPL2 license = GPL2
@ -11,6 +11,6 @@ pkgbase = rtl88x2bu-openhd-dkms-git
source = git+https://github.com/OpenHD/rtl88x2bu.git source = git+https://github.com/OpenHD/rtl88x2bu.git
source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch source = 0001-Update-beacon-change-signature-to-fix-build-on-recen.patch
sha256sums = SKIP sha256sums = SKIP
sha256sums = 24f7ce0d221b12cd61d9b89608babba379dcfa97d298e71d50669e10ba619645 sha256sums = 1449a364a7b8bd828420720c21379d6f5fd395dc761b12925b0ba4809bc0ef13
pkgname = rtl88x2bu-openhd-dkms-git pkgname = rtl88x2bu-openhd-dkms-git

View File

@ -1,34 +1,79 @@
From bc7c89d0bb4294165879261cc54555bf40267947 Mon Sep 17 00:00:00 2001
From: Rihards Skuja <rihards@skuja.eu>
Date: Thu, 29 Feb 2024 12:37:52 +0200
Subject: [PATCH] Update beacon change signature to fix build on recent kernels
---
os_dep/linux/ioctl_cfg80211.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index 30b1f66..302cdde 100644 index 30b1f66..1c1c3c4 100644
--- a/os_dep/linux/ioctl_cfg80211.c --- a/os_dep/linux/ioctl_cfg80211.c
+++ b/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c
@@ -5404,14 +5404,15 @@ exit: @@ -5404,14 +5404,25 @@ exit:
} }
static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev,
- struct cfg80211_beacon_data *info) - struct cfg80211_beacon_data *info)
+ struct cfg80211_ap_update *info) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
+ struct cfg80211_ap_update *info
+#else
+ struct cfg80211_beacon_data *info
+#endif
+)
{ {
int ret = 0; int ret = 0;
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
+ struct cfg80211_beacon_data *beacon_info = &info->beacon;
+#else
+ struct cfg80211_beacon_data *beacon_info = info;
+#endif
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
- ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len); - ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
+ ret = rtw_add_beacon(adapter, info->beacon.head, info->beacon.head_len, + ret = rtw_add_beacon(adapter, beacon_info->head, beacon_info->head_len,
+ info->beacon.tail, info->beacon.tail_len); + beacon_info->tail, beacon_info->tail_len);
return ret; return ret;
} }
-- diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
2.44.0 index 2486c22..0df8591 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -2042,13 +2042,13 @@ static void rtw_ethtool_get_drvinfo(struct net_device *dev, struct ethtool_drvin
wdev = dev->ieee80211_ptr;
if (wdev) {
- strlcpy(info->driver, wiphy_dev(wdev->wiphy)->driver->name,
+ strscpy(info->driver, wiphy_dev(wdev->wiphy)->driver->name,
sizeof(info->driver));
} else {
- strlcpy(info->driver, "N/A", sizeof(info->driver));
+ strscpy(info->driver, "N/A", sizeof(info->driver));
}
- strlcpy(info->version, DRIVERVERSION, sizeof(info->version));
+ strscpy(info->version, DRIVERVERSION, sizeof(info->version));
padapter = (_adapter *)rtw_netdev_priv(dev);
if (padapter) {
@@ -2059,10 +2059,10 @@ static void rtw_ethtool_get_drvinfo(struct net_device *dev, struct ethtool_drvin
scnprintf(info->fw_version, sizeof(info->fw_version), "%d.%d",
hal_data->firmware_version, hal_data->firmware_sub_version);
} else {
- strlcpy(info->fw_version, "N/A", sizeof(info->fw_version));
+ strscpy(info->fw_version, "N/A", sizeof(info->fw_version));
}
- strlcpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)),
+ strscpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)),
sizeof(info->bus_info));
}
diff --git a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
index 1e51e34..5e8b188 100644
--- a/os_dep/linux/usb_intf.c
+++ b/os_dep/linux/usb_intf.c
@@ -347,7 +347,7 @@ struct rtw_usb_drv usb_drv = {
.usbdrv.reset_resume = rtw_resume,
#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
.usbdrv.drvwrap.driver.shutdown = rtw_dev_shutdown,
#else
.usbdrv.driver.shutdown = rtw_dev_shutdown,

View File

@ -4,7 +4,7 @@ pkgname=rtl88x2bu-openhd-dkms-git
_modname=88x2bu_ohd _modname=88x2bu_ohd
pkgver=5.13.1.r222.gaad91d6 pkgver=5.13.1.r222.gaad91d6
_pkgver=5.13.1 _pkgver=5.13.1
pkgrel=3 pkgrel=4
pkgdesc='Realtek RTL88x2BU WiFi USB driver (with OpenHD patches)' pkgdesc='Realtek RTL88x2BU WiFi USB driver (with OpenHD patches)'
arch=(any) arch=(any)
url='https://github.com/OpenHD/rtl88x2bu' url='https://github.com/OpenHD/rtl88x2bu'
@ -13,7 +13,7 @@ depends=(dkms bc)
makedepends=(git) makedepends=(git)
source=('git+https://github.com/OpenHD/rtl88x2bu.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch') source=('git+https://github.com/OpenHD/rtl88x2bu.git' '0001-Update-beacon-change-signature-to-fix-build-on-recen.patch')
sha256sums=('SKIP' sha256sums=('SKIP'
'24f7ce0d221b12cd61d9b89608babba379dcfa97d298e71d50669e10ba619645') '1449a364a7b8bd828420720c21379d6f5fd395dc761b12925b0ba4809bc0ef13')
pkgver() { pkgver() {
cd "${srcdir}/rtl88x2bu" cd "${srcdir}/rtl88x2bu"