diff --git a/packages/linux-drivers/RTL8812AU/package.mk b/packages/linux-drivers/RTL8812AU/package.mk index 2a6ff08eca..c016c92028 100644 --- a/packages/linux-drivers/RTL8812AU/package.mk +++ b/packages/linux-drivers/RTL8812AU/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="RTL8812AU" -PKG_VERSION="e9fbf5c051453941bbc029810b893a6c010714e6" -PKG_SHA256="a79f06b1b2d9fd880cddebe7723b7e46abf9a8ba1c40c1eee6498c623913cadb" +PKG_VERSION="64e7aaa5657ef63ab7ce74ce5554b49a21552e68" +PKG_SHA256="1b7a79b15348f1a1125a351e5e5ff524456236519e20ee04b59484aefa6afbaa" PKG_LICENSE="GPL" PKG_SITE="https://github.com/aircrack-ng/rtl8812au" PKG_URL="https://github.com/aircrack-ng/rtl8812au/archive/$PKG_VERSION.tar.gz" diff --git a/packages/linux-drivers/RTL8812AU/patches/RTL8812AU-0001-fix_kernel_5_10.patch b/packages/linux-drivers/RTL8812AU/patches/RTL8812AU-0001-fix_kernel_5_10.patch deleted file mode 100644 index cd3207b3b9..0000000000 --- a/packages/linux-drivers/RTL8812AU/patches/RTL8812AU-0001-fix_kernel_5_10.patch +++ /dev/null @@ -1,281 +0,0 @@ -From ee9619ba0c8840db6d59d11989c31e24a8f0d806 Mon Sep 17 00:00:00 2001 -From: Carlos -Date: Sun, 8 Nov 2020 12:25:43 +0000 -Subject: [PATCH] Fix kernel 5.10-rc1 - ---- - core/rtw_btcoex.c | 7 ++++++- - core/rtw_wlan_util.c | 10 ++++++---- - os_dep/linux/os_intfs.c | 19 +++++++++++++----- - os_dep/osdep_service.c | 43 +++++++++++++++++++++++++++-------------- - 4 files changed, 54 insertions(+), 25 deletions(-) - -diff --git a/core/rtw_btcoex.c b/core/rtw_btcoex.c -index d5b89bdc..f5e0f567 100644 ---- a/core/rtw_btcoex.c -+++ b/core/rtw_btcoex.c -@@ -1443,7 +1443,9 @@ u8 rtw_btcoex_sendmsgbysocket(_adapter *padapter, u8 *msg, u8 msg_size, bool for - { - u8 error; - struct msghdr udpmsg; -+#ifdef set_fs - mm_segment_t oldfs; -+#endif - struct iovec iov; - struct bt_coex_info *pcoex_info = &padapter->coex_info; - -@@ -1473,15 +1475,18 @@ u8 rtw_btcoex_sendmsgbysocket(_adapter *padapter, u8 *msg, u8 msg_size, bool for - udpmsg.msg_control = NULL; - udpmsg.msg_controllen = 0; - udpmsg.msg_flags = MSG_DONTWAIT | MSG_NOSIGNAL; -+#ifdef set_fs - oldfs = get_fs(); - set_fs(KERNEL_DS); -- -+#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) - error = sock_sendmsg(pcoex_info->udpsock, &udpmsg); - #else - error = sock_sendmsg(pcoex_info->udpsock, &udpmsg, msg_size); - #endif -+#ifdef set_fs - set_fs(oldfs); -+#endif - if (error < 0) { - RTW_INFO("Error when sendimg msg, error:%d\n", error); - return _FAIL; -diff --git a/core/rtw_wlan_util.c b/core/rtw_wlan_util.c -index b4cecd11..e465e9b5 100644 ---- a/core/rtw_wlan_util.c -+++ b/core/rtw_wlan_util.c -@@ -4744,7 +4744,9 @@ int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t *ssid, - - int i = 0; - struct file *fp; -+#ifdef set_fs - mm_segment_t fs; -+#endif - loff_t pos = 0; - u8 *source = NULL; - long len = 0; -@@ -4780,10 +4782,10 @@ int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t *ssid, - RTW_INFO("Error, cipher array using default value.\n"); - return 0; - } -- -+#ifdef set_fs - fs = get_fs(); - set_fs(KERNEL_DS); -- -+#endif - source = rtw_zmalloc(2048); - - if (source != NULL) { -@@ -4791,10 +4793,10 @@ int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t *ssid, - rtw_parse_cipher_list(nlo_info, source); - rtw_mfree(source, 2048); - } -- -+#ifdef set_fs - set_fs(fs); - filp_close(fp, NULL); -- -+#endif - RTW_INFO("-%s-\n", __func__); - return 0; - } -diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c -index 1085d6cd..a37e488b 100644 ---- a/os_dep/linux/os_intfs.c -+++ b/os_dep/linux/os_intfs.c -@@ -4029,7 +4029,9 @@ static int route_dump(u32 *gw_addr , int *gw_index) - struct msghdr msg; - struct iovec iov; - struct sockaddr_nl nladdr; -+#ifdef set_fs - mm_segment_t oldfs; -+#endif - char *pg; - int size = 0; - -@@ -4067,16 +4069,18 @@ static int route_dump(u32 *gw_addr , int *gw_index) - msg.msg_control = NULL; - msg.msg_controllen = 0; - msg.msg_flags = MSG_DONTWAIT; -- -+#ifdef set_fs - oldfs = get_fs(); - set_fs(KERNEL_DS); -+#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) - err = sock_sendmsg(sock, &msg); - #else - err = sock_sendmsg(sock, &msg, sizeof(req)); - #endif -+#ifdef set_fs - set_fs(oldfs); -- -+#endif - if (err < 0) - goto out_sock; - -@@ -4099,16 +4103,18 @@ static int route_dump(u32 *gw_addr , int *gw_index) - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) - iov_iter_init(&msg.msg_iter, READ, &iov, 1, PAGE_SIZE); - #endif -- -+#ifdef set_fs - oldfs = get_fs(); - set_fs(KERNEL_DS); -+#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)) - err = sock_recvmsg(sock, &msg, MSG_DONTWAIT); - #else - err = sock_recvmsg(sock, &msg, PAGE_SIZE, MSG_DONTWAIT); - #endif -+#ifdef set_fs - set_fs(oldfs); -- -+#endif - if (err < 0) - goto out_sock_pg; - -@@ -4178,15 +4184,18 @@ static int route_dump(u32 *gw_addr , int *gw_index) - msg.msg_controllen = 0; - msg.msg_flags = MSG_DONTWAIT; - -+#ifdef set_fs - oldfs = get_fs(); - set_fs(KERNEL_DS); -+#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) - err = sock_sendmsg(sock, &msg); - #else - err = sock_sendmsg(sock, &msg, sizeof(req)); - #endif -+#ifdef set_fs - set_fs(oldfs); -- -+#endif - if (err > 0) - goto restart; - } -diff --git a/os_dep/osdep_service.c b/os_dep/osdep_service.c -index 7c6d1208..0769b49d 100644 ---- a/os_dep/osdep_service.c -+++ b/os_dep/osdep_service.c -@@ -2164,11 +2164,21 @@ static int writeFile(struct file *fp, char *buf, int len) - { - int wlen = 0, sum = 0; - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) -+ if (!(fp->f_mode & FMODE_CAN_WRITE)) -+#else - if (!fp->f_op || !fp->f_op->write) -+#endif - return -EPERM; - - while (sum < len) { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) -+ wlen = kernel_write(fp, buf + sum, len - sum, &fp->f_pos); -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) -+ wlen = __vfs_write(fp, buf + sum, len - sum, &fp->f_pos); -+#else - wlen = fp->f_op->write(fp, buf + sum, len - sum, &fp->f_pos); -+#endif - if (wlen > 0) - sum += wlen; - else if (0 != wlen) -@@ -2191,19 +2201,19 @@ static int isFileReadable(const char *path, u32 *sz) - { - struct file *fp; - int ret = 0; -+#ifdef set_fs - mm_segment_t oldfs; -+#endif - char buf; - - fp = filp_open(path, O_RDONLY, 0); - if (IS_ERR(fp)) - ret = PTR_ERR(fp); - else { -+#ifdef set_fs - oldfs = get_fs(); -- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); -- #else -- set_fs(get_ds()); -- #endif -+#endif - - if (1 != readFile(fp, &buf, 1)) - ret = PTR_ERR(fp); -@@ -2215,8 +2225,9 @@ static int isFileReadable(const char *path, u32 *sz) - *sz = i_size_read(fp->f_dentry->d_inode); - #endif - } -- -+#ifdef set_fs - set_fs(oldfs); -+#endif - filp_close(fp, NULL); - } - return ret; -@@ -2232,22 +2243,23 @@ static int isFileReadable(const char *path, u32 *sz) - static int retriveFromFile(const char *path, u8 *buf, u32 sz) - { - int ret = -1; -+#ifdef set_fs - mm_segment_t oldfs; -+#endif - struct file *fp; - - if (path && buf) { - ret = openFile(&fp, path, O_RDONLY, 0); - if (0 == ret) { - RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); -- -+#ifdef set_fs - oldfs = get_fs(); -- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); -- #else -- set_fs(get_ds()); -- #endif - ret = readFile(fp, buf, sz); - set_fs(oldfs); -+#else -+ ret = readFile(fp, buf, sz); -+#endif - closeFile(fp); - - RTW_INFO("%s readFile, ret:%d\n", __FUNCTION__, ret); -@@ -2271,22 +2283,23 @@ static int retriveFromFile(const char *path, u8 *buf, u32 sz) - static int storeToFile(const char *path, u8 *buf, u32 sz) - { - int ret = 0; -+#ifdef set_fs - mm_segment_t oldfs; -+#endif - struct file *fp; - - if (path && buf) { - ret = openFile(&fp, path, O_CREAT | O_WRONLY, 0666); - if (0 == ret) { - RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); -- -+#ifdef set_fs - oldfs = get_fs(); -- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); -- #else -- set_fs(get_ds()); -- #endif - ret = writeFile(fp, buf, sz); - set_fs(oldfs); -+#else -+ ret = writeFile(fp, buf, sz); -+#endif - closeFile(fp); - - RTW_INFO("%s writeFile, ret:%d\n", __FUNCTION__, ret);