Compare commits

...

73 Commits

Author SHA1 Message Date
Sophie Brun 6ea2356d6f
Prepare for Release 2024-01-15 14:53:27 +01:00
Sophie Brun 852adb54cd
Refresh patches 2024-01-15 14:53:03 +01:00
Sophie Brun 53d19f5702 Update upstream source from tag 'upstream/5.3.9_git20230921.3fae723'
Update to upstream version '5.3.9~git20230921.3fae723'
with Debian dir 8bf8e82b59
2024-01-15 14:46:54 +01:00
Sophie Brun adba813558 New upstream version 5.3.9~git20230921.3fae723 2024-01-15 14:46:50 +01:00
Sophie Brun 0b411e63ba
Prepare for Release 2023-07-05 14:58:13 +02:00
Sophie Brun 7406ecf7d5
Import a patch to build for 6.3 2023-07-05 14:32:11 +02:00
Steev Klimaszewski ef92a04584 Override dkms autopkgtest
The dkms autopkgtest script tries to install all header packages that it
can find; This is a wifi network driver, and the cloud kernels do not
include the necessary headers to build a wifi network driver.
So, lets attempt to override the autopkgtest and just run the script
manually.
2023-06-20 20:31:06 -05:00
Sophie Brun fa361c0252
Prepare for Release 2023-02-21 14:54:21 +01:00
Sophie Brun 2d802875d5
Add informations in patches 2023-02-21 14:54:21 +01:00
Sophie Brun 524958cc4b
Add support for Linux Kernel 6.1 2023-02-21 14:50:58 +01:00
Sophie Brun 3c1147c914
Refresh patches 2023-02-21 14:48:05 +01:00
Sophie Brun 8e7144bc33 Update upstream source from tag 'upstream/5.3.9_git20230101.f8ead57'
Update to upstream version '5.3.9~git20230101.f8ead57'
with Debian dir eb79d6efc7
2023-02-21 14:37:19 +01:00
Sophie Brun 5c684654e1 New upstream version 5.3.9~git20230101.f8ead57 2023-02-21 14:37:15 +01:00
Kali Janitor 8932f347c2 Update standards version to 4.6.2, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
2023-01-24 00:32:37 +00:00
Kali Janitor dbc1be7196 Set upstream metadata fields: Repository.
Changes-By: lintian-brush
Fixes: lintian: upstream-metadata-missing-repository
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-repository.html
2022-11-15 01:19:54 +00:00
Sophie Brun a506509dd0
Prepare for Release 2022-11-10 12:02:25 +01:00
Sophie Brun 7bbd07e6ef
Refresh patches 2022-11-10 12:01:24 +01:00
Sophie Brun 88c1c410b6 Update upstream source from tag 'upstream/5.3.9_git20221105.dab6e02'
Update to upstream version '5.3.9~git20221105.dab6e02'
with Debian dir eb4bf80565
2022-11-10 11:59:52 +01:00
Sophie Brun 41650f7535 New upstream version 5.3.9~git20221105.dab6e02 2022-11-10 11:59:48 +01:00
Kali Janitor bd397f8a55 Set upstream metadata fields: Repository-Browse.
Changes-By: lintian-brush
2022-11-01 05:14:33 +00:00
Sophie Brun 7ba2c81762
Prepare for Release 2022-10-06 16:00:04 +02:00
Sophie Brun 93bc402add
Import upstream patch to fix the build with Linux 5.19 2022-10-06 15:59:12 +02:00
Sophie Brun d1092bd331
Refresh patches 2022-10-06 15:05:13 +02:00
Sophie Brun 7338edb800 Update upstream source from tag 'upstream/5.3.9_git20220829.4ba8e08'
Update to upstream version '5.3.9~git20220829.4ba8e08'
with Debian dir acb483443a
2022-10-06 14:22:17 +02:00
Sophie Brun 8e82f2058a New upstream version 5.3.9~git20220829.4ba8e08 2022-10-06 14:22:13 +02:00
Kali Janitor be4e8e03c7 Update standards version to 4.6.1, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
2022-09-15 09:53:41 +00:00
Kali Janitor 6ef1e0dce3 Set upstream metadata fields: Bug-Database, Bug-Submit.
Changes-By: lintian-brush
Fixes: lintian: upstream-metadata-file-is-missing
See-also: https://lintian.debian.org/tags/upstream-metadata-file-is-missing.html
Fixes: lintian: upstream-metadata-missing-bug-tracking
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-bug-tracking.html
2022-09-15 09:53:28 +00:00
Kali Janitor 970e221d6c debian/copyright: use spaces rather than tabs to start continuation lines.
Changes-By: lintian-brush
Fixes: lintian: tab-in-license-text
See-also: https://lintian.debian.org/tags/tab-in-license-text.html
2022-09-15 09:53:09 +00:00
Kali Janitor ed0e6ba7f9 Trim trailing whitespace.
Changes-By: lintian-brush
Fixes: lintian: trailing-whitespace
See-also: https://lintian.debian.org/tags/trailing-whitespace.html
2022-09-15 09:52:57 +00:00
Arnaud Rebillout 52d217db9b
Set PACKAGE_VERSION in override_dh_dkms
As this file is use by dh_dkms, it's Ok to adjust it just before calling
dh_dkms. Also, the option '-V $(DEB_VERSION_UPSTREAM)' is pointless, as
we already made sure that PACKAGE_VERSION was set properly.
2022-08-25 23:28:05 +07:00
Arnaud Rebillout 79615b352f
Switch to dh-sequence-dkms 2022-08-25 22:58:22 +07:00
Arnaud Rebillout 50b857d068
No more dh-exec (requires compat 13) 2022-08-25 22:57:36 +07:00
Arnaud Rebillout 0c779d9cd8
Nitpicks, harmonize realtek-*-dkms packages
To reduce the differences when comparing those packages.

Gbp-Dch: ignore
2022-08-25 22:56:10 +07:00
Sophie Brun 9185277f38
Prepare for Release 2022-06-21 12:21:06 +02:00
Sophie Brun dffa09bda6
Add a patch to fix the build with kernel 5.18 2022-06-21 12:19:40 +02:00
Sophie Brun ca3597e27f
Refresh patch 2022-06-21 12:19:30 +02:00
Sophie Brun 4d3330bc88
Remove useless patch (we change version in debian/rules) 2022-06-21 12:08:35 +02:00
Sophie Brun 1a7fc4699b
Prepare for Release 2022-05-18 17:51:03 +02:00
Sophie Brun 92f8278d8b
Add a patch to fix build build with kernel 5.17 2022-05-18 17:49:41 +02:00
Sophie Brun f3d9c10358
Prepare for Release 2022-05-12 11:03:13 +02:00
Sophie Brun 661846d873
Refresh patches 2022-05-12 11:02:48 +02:00
Sophie Brun e396b4e6ce Update upstream source from tag 'upstream/5.3.9_git20220319.0958f29'
Update to upstream version '5.3.9~git20220319.0958f29'
with Debian dir c14f50d3d0
2022-05-12 10:59:07 +02:00
Sophie Brun 88c8fcfece New upstream version 5.3.9~git20220319.0958f29 2022-05-12 10:59:03 +02:00
Sophie Brun 4486ebf4dc
Prepare for Release 2021-12-14 17:56:23 +01:00
Sophie Brun b374d14770
Add a patch to fix the compilation with kernel 5.15 2021-12-14 17:55:44 +01:00
Ben Wilson 69059a85ae Remove template comment and switch spaces to tabs 2021-11-20 14:27:50 +00:00
Sophie Brun 08116e23bd
Update debian/changelog 2021-09-28 11:00:37 +02:00
Sophie Brun ab187afc15
Refresh patches 2021-09-28 10:59:57 +02:00
Sophie Brun 167db73ddf Update upstream source from tag 'upstream/5.3.9_git20210504.6146193'
Update to upstream version '5.3.9~git20210504.6146193'
with Debian dir 89874ea436
2021-09-28 10:26:46 +02:00
Sophie Brun 5e25e5ab54
Prepare for Release 2021-07-13 10:50:58 +02:00
Sophie Brun 5bb00118be
Blacklist r8188eu 2021-07-13 10:50:03 +02:00
Sophie Brun aa31120624
Bump Standards-Version to 4.5.1 2021-07-13 09:57:03 +02:00
Sophie Brun 9aa2cd13ac
Prepare for Release 2021-04-14 17:25:54 +02:00
Sophie Brun ca373d4356
Refresh patches 2021-04-14 17:24:58 +02:00
Sophie Brun aae9cdee3b Update upstream source from tag 'upstream/5.3.9_git20210206.1e7145f'
Update to upstream version '5.3.9~git20210206.1e7145f'
with Debian dir 80bf993a47
2021-04-14 16:49:07 +02:00
Sophie Brun e2969545f3
Update debian/watch 2021-04-14 16:45:01 +02:00
Sophie Brun da9706496e
Prepare for Release 2021-01-26 17:06:51 +01:00
Sophie Brun e105322274
Refresh patches 2021-01-26 17:06:28 +01:00
Sophie Brun f074eb5844 Update upstream source from tag 'upstream/5.3.9_git20201227'
Update to upstream version '5.3.9~git20201227'
with Debian dir 26f5989d84
2021-01-26 17:02:05 +01:00
Sophie Brun ec3c163afd Fix errors introduced in 5a7f22dc1f 2020-09-16 16:01:10 +02:00
Sophie Brun fb75a987dd Prepare release 2020-09-16 15:17:16 +02:00
Sophie Brun 5a7f22dc1f Add lintian-overrides for dh-exec-subst-unknown-variable 2020-09-16 15:17:16 +02:00
Sophie Brun 6cdb6d8145 Bump Standards-Version to 4.5.0 2020-09-16 15:17:16 +02:00
Sophie Brun 3ed934f66a Add comment in debian/copyright 2020-09-16 15:17:16 +02:00
Sophie Brun 2e8ec02f30 Refresh patches 2020-09-16 15:17:16 +02:00
Sophie Brun bb80d9b37d Update upstream source from tag 'upstream/5.3.9_git20200829'
Update to upstream version '5.3.9~git20200829'
with Debian dir e0e5993025
2020-09-16 15:00:55 +02:00
Sophie Brun 627a0f8e2c New upstream version 5.3.9~20200710 2020-07-10 09:08:57 +02:00
Sophie Brun 4bd5e85b7b Update upstream source from tag 'upstream/5.3.9_git20200710'
Update to upstream version '5.3.9~git20200710'
with Debian dir 9d52024ab0
2020-07-10 08:55:17 +02:00
Sophie Brun ce21fa5d6b New upstream version 5.3.9~git20200316 2020-05-14 11:45:59 +02:00
Sophie Brun a313c3997a Update upstream source from tag 'upstream/5.3.9_git20200316'
Update to upstream version '5.3.9~git20200316'
with Debian dir c5dba9c629
2020-05-14 11:44:23 +02:00
Sophie Brun 3b2b01c647 Add GitLab's CI configuration file 2019-12-17 17:39:03 +01:00
Sophie Brun 9c36ca92c2 Configure git-buildpackage for Kali 2019-12-17 17:39:03 +01:00
Sophie Brun ea83a483fa Initial release 2019-12-17 17:34:14 +01:00
45 changed files with 729 additions and 13806 deletions

View File

@ -7,20 +7,22 @@ EXTRA_CFLAGS += -Wno-unused-label
EXTRA_CFLAGS += -Wno-unused-parameter EXTRA_CFLAGS += -Wno-unused-parameter
EXTRA_CFLAGS += -Wno-unused-function EXTRA_CFLAGS += -Wno-unused-function
EXTRA_CFLAGS += -Wno-unused EXTRA_CFLAGS += -Wno-unused
EXTRA_CFLAGS += -Wno-address
EXTRA_CFLAGS += -Wno-cast-function-type
#EXTRA_CFLAGS += -Wno-discarded-qualifiers
EXTRA_CFLAGS += -Wno-uninitialized
EXTRA_CFLAGS += -Wno-sometimes-uninitialized
EXTRA_CFLAGS += -Wno-enum-conversion
EXTRA_CFLAGS += -Wno-vla EXTRA_CFLAGS += -Wno-vla
EXTRA_CFLAGS += -Wno-date-time EXTRA_CFLAGS += -Wno-date-time
REDHAT_VER := $(shell cut -f4 -d" " /etc/redhat-release |cut -d"." -f1,2 )
ifeq ($(REDHAT_VER), 7.9)
EXTRA_CFLAGS += -DRHEL79
endif
GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc )
ifeq ($(GCC_VER_49),1) ifeq ($(GCC_VER_49),1)
EXTRA_CFLAGS += -Wno-date-time # Fix compile error && warning on gcc 4.9 and later EXTRA_CFLAGS += -Wno-date-time # Fix compile error && warning on gcc 4.9 and later
endif endif
EXTRA_CFLAGS += -I$(src)/include EXTRA_CFLAGS += -I$(src)/include -I$(srctree)/$(src)/include
EXTRA_LDFLAGS += --strip-debug EXTRA_LDFLAGS += --strip-debug
@ -227,10 +229,11 @@ _HAL_INTFS_FILES := hal/hal_intf.o \
hal/led/hal_$(HCI_NAME)_led.o hal/led/hal_$(HCI_NAME)_led.o
EXTRA_CFLAGS += -I$(src)/platform EXTRA_CFLAGS += -I$(src)/platform -I$(srctree)/$(src)/platform
_PLATFORM_FILES := platform/platform_ops.o _PLATFORM_FILES := platform/platform_ops.o
EXTRA_CFLAGS += -I$(src)/hal/btc EXTRA_CFLAGS += -I$(src)/hal/btc -I$(srctree)/$(src)/hal/btc
EXTRA_CFLAGS += -I$(src)/hal/phydm -I$(srctree)/$(src)/hal/phydm
########### HAL_RTL8188E ################################# ########### HAL_RTL8188E #################################
ifeq ($(CONFIG_RTL8188E), y) ifeq ($(CONFIG_RTL8188E), y)

View File

@ -1,6 +1,3 @@
Like https://github.com/cccooo/rtl8812au-centos-7.6, forked from aircrack-ng/rtl8188eus and modified for CentOS 7.9
as CentOS Kernel 3.10 contains many code from 4.x
## rtl8188eus v5.3.9 ## rtl8188eus v5.3.9
# Realtek rtl8188eus & rtl8188eu & rtl8188etv WiFi drivers # Realtek rtl8188eus & rtl8188eu & rtl8188etv WiFi drivers
@ -17,30 +14,41 @@ as CentOS Kernel 3.10 contains many code from 4.x
# Supports # Supports
* Android 7 * Android 12/13
* MESH Support * MESH Support
* Monitor mode * Monitor mode
* Frame injection * Frame injection
* Up to kernel v5.8+ * Up to kernel v6.5+
... And a bunch of various wifi chipsets ... And a bunch of various wifi chipsets
# Howto build/install # Howto build/install
1. You will need to blacklist another driver in order to use this one. 1. Compile and install the driver:
2. `echo 'blacklist r8188eu'|sudo tee -a '/etc/modprobe.d/realtek.conf'` ```
3. `make && sudo make install` cd rtl8188eus
4. Reboot in order to blacklist and load the new driver/module. make && sudo make install
```
2. Blacklist another drivers in order to use this one:
```
echo 'blacklist r8188eu' | sudo tee -a '/etc/modprobe.d/realtek.conf'
echo 'blacklist rtl8xxxu' | sudo tee -a '/etc/modprobe.d/realtek.conf'
```
3. `reboot` or remove all drivers related to RTL8188 and reload this one:
```
rmmod r8188eu rtl8xxxu 8188eu
modprobe 8188eu
```
# MONITOR MODE howto # MONITOR MODE howto
Use these steps to enter monitor mode. Use these steps to enter monitor mode.
``` ```
$ sudo airmon-ng check kill sudo airmon-ng check kill
$ sudo ip link set <interface> down sudo ip link set <interface> down
$ sudo iw dev <interface> set type monitor sudo iw dev <interface> set type monitor
``` ```
Frame injection test may be performed with Frame injection test may be performed with
(after kernel v5.2 scanning is slow, run a scan or simply an airodump-ng first!) (after kernel v5.2 scanning is slow, run a scan or simply an airodump-ng first!)
``` ```
$ aireplay -9 <interface> sudo aireplay-ng -9 <interface>
``` ```
# NetworkManager configuration # NetworkManager configuration

View File

@ -711,13 +711,14 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake)
j = 0; j = 0;
for (i = 0; i < mapLen; i++) { for (i = 0; i < mapLen; i++) {
if (i % 16 == 0) if (i % 16 == 0) {
RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i);
_RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s"
, pEfuseHal->fakeEfuseInitMap[i] , pEfuseHal->fakeEfuseInitMap[i]
, ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ")
); );
} }
}
_RTW_PRINT_SEL(RTW_DBGDUMP, "\n"); _RTW_PRINT_SEL(RTW_DBGDUMP, "\n");
if (eFuseWord) if (eFuseWord)
rtw_mfree((u8 *)eFuseWord, EFUSE_MAX_SECTION_NUM * (EFUSE_MAX_WORD_UNIT * 2)); rtw_mfree((u8 *)eFuseWord, EFUSE_MAX_SECTION_NUM * (EFUSE_MAX_WORD_UNIT * 2));

View File

@ -15,9 +15,12 @@
#define _RTW_BR_EXT_C_ #define _RTW_BR_EXT_C_
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/version.h>
#include <linux/if_arp.h> #include <linux/if_arp.h>
#include <net/ip.h> #include <net/ip.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
#include <net/ipx.h> #include <net/ipx.h>
#endif
#include <linux/atalk.h> #include <linux/atalk.h>
#include <linux/udp.h> #include <linux/udp.h>
#include <linux/if_pppox.h> #include <linux/if_pppox.h>
@ -114,7 +117,13 @@ static __inline__ int __nat25_add_pppoe_tag(struct sk_buff *skb, struct pppoe_ta
/* have a room for new tag */ /* have a room for new tag */
memmove(((unsigned char *)ph->tag + data_len), (unsigned char *)ph->tag, ntohs(ph->length)); memmove(((unsigned char *)ph->tag + data_len), (unsigned char *)ph->tag, ntohs(ph->length));
ph->length = htons(ntohs(ph->length) + data_len); ph->length = htons(ntohs(ph->length) + data_len);
#if (defined __GNUC__) && (__GNUC__ > 10)
#pragma GCC diagnostic ignored "-Wstringop-overread"
#endif
memcpy((unsigned char *)ph->tag, tag, data_len); memcpy((unsigned char *)ph->tag, tag, data_len);
#if (defined __GNUC__) && (__GNUC__ > 10)
#pragma GCC diagnostic pop
#endif
return data_len; return data_len;
} }
@ -948,6 +957,7 @@ int nat25_db_handle(_adapter *priv, struct sk_buff *skb, int method)
} }
} }
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
/* IPX */ /* IPX */
if (ipx != NULL) { if (ipx != NULL) {
switch (method) { switch (method) {
@ -1016,8 +1026,12 @@ int nat25_db_handle(_adapter *priv, struct sk_buff *skb, int method)
} }
} }
/* AARP */ /* AARP */
else if (ea != NULL) { else if (ea != NULL) {
#else
if (ea != NULL) {
#endif
/* Sanity check fields. */ /* Sanity check fields. */
if (ea->hw_len != ETH_ALEN || ea->pa_len != AARP_PA_ALEN) { if (ea->hw_len != ETH_ALEN || ea->pa_len != AARP_PA_ALEN) {
DEBUG_WARN("NAT25: Appletalk AARP Sanity check fail!\n"); DEBUG_WARN("NAT25: Appletalk AARP Sanity check fail!\n");

View File

@ -1831,11 +1831,13 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame)
ptable->func = &OnAuth; ptable->func = &OnAuth;
else else
ptable->func = &OnAuthClient; ptable->func = &OnAuthClient;
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0) _mgt_dispatcher(padapter, ptable, precv_frame);
__attribute__ ((fallthrough)); //#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
#else // __attribute__ ((fallthrough));
__attribute__ ((__fallthrough__)); //#else
#endif // __attribute__ ((fallthrough));
//#endif
break;
case WIFI_ASSOCREQ: case WIFI_ASSOCREQ:
case WIFI_REASSOCREQ: case WIFI_REASSOCREQ:
_mgt_dispatcher(padapter, ptable, precv_frame); _mgt_dispatcher(padapter, ptable, precv_frame);

View File

@ -14,9 +14,6 @@
*****************************************************************************/ *****************************************************************************/
#define _RTW_MP_C_ #define _RTW_MP_C_
#include <drv_types.h> #include <drv_types.h>
#ifdef PLATFORM_FREEBSD
#include <sys/unistd.h> /* for RFHIGHPID */
#endif
#include "../hal/phydm/phydm_precomp.h" #include "../hal/phydm/phydm_precomp.h"
#if defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8821A) #if defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8821A)
@ -163,64 +160,6 @@ static void _init_mp_priv_(struct mp_priv *pmp_priv)
} }
#ifdef PLATFORM_WINDOWS
#if 0
void mp_wi_callback(
IN NDIS_WORK_ITEM *pwk_item,
IN PVOID cntx
)
{
_adapter *padapter = (_adapter *)cntx;
struct mp_priv *pmppriv = &padapter->mppriv;
struct mp_wi_cntx *pmp_wi_cntx = &pmppriv->wi_cntx;
/* Execute specified action. */
if (pmp_wi_cntx->curractfunc != NULL) {
LARGE_INTEGER cur_time;
ULONGLONG start_time, end_time;
NdisGetCurrentSystemTime(&cur_time); /* driver version */
start_time = cur_time.QuadPart / 10; /* The return value is in microsecond */
pmp_wi_cntx->curractfunc(padapter);
NdisGetCurrentSystemTime(&cur_time); /* driver version */
end_time = cur_time.QuadPart / 10; /* The return value is in microsecond */
}
NdisAcquireSpinLock(&(pmp_wi_cntx->mp_wi_lock));
pmp_wi_cntx->bmp_wi_progress = _FALSE;
NdisReleaseSpinLock(&(pmp_wi_cntx->mp_wi_lock));
if (pmp_wi_cntx->bmpdrv_unload)
NdisSetEvent(&(pmp_wi_cntx->mp_wi_evt));
}
#endif
static int init_mp_priv_by_os(struct mp_priv *pmp_priv)
{
struct mp_wi_cntx *pmp_wi_cntx;
if (pmp_priv == NULL)
return _FAIL;
pmp_priv->rx_testcnt = 0;
pmp_priv->rx_testcnt1 = 0;
pmp_priv->rx_testcnt2 = 0;
pmp_priv->tx_testcnt = 0;
pmp_priv->tx_testcnt1 = 0;
pmp_wi_cntx = &pmp_priv->wi_cntx
pmp_wi_cntx->bmpdrv_unload = _FALSE;
pmp_wi_cntx->bmp_wi_progress = _FALSE;
pmp_wi_cntx->curractfunc = NULL;
return _SUCCESS;
}
#endif
#ifdef PLATFORM_LINUX #ifdef PLATFORM_LINUX
static int init_mp_priv_by_os(struct mp_priv *pmp_priv) static int init_mp_priv_by_os(struct mp_priv *pmp_priv)
{ {
@ -1940,17 +1879,6 @@ void SetPacketTx(PADAPTER padapter)
pmp_priv->tx.PktTxThread = NULL; pmp_priv->tx.PktTxThread = NULL;
} }
#endif #endif
#ifdef PLATFORM_FREEBSD
{
struct proc *p;
struct thread *td;
pmp_priv->tx.PktTxThread = kproc_kthread_add(mp_xmit_packet_thread, pmp_priv,
&p, &td, RFHIGHPID, 0, "MPXmitThread", "MPXmitThread");
if (pmp_priv->tx.PktTxThread < 0)
RTW_INFO("Create PktTx Thread Fail !!!!!\n");
}
#endif
Rtw_MPSetMacTxEDCA(padapter); Rtw_MPSetMacTxEDCA(padapter);
exit: exit:

View File

@ -1575,7 +1575,7 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe)
pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset; pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset;
/* 4 start to encrypt each fragment */ /* 4 start to encrypt each fragment */
if ((pattrib->encrypt == _AES_)) { if (pattrib->encrypt == _AES_) {
/* /*
if(pattrib->psta) if(pattrib->psta)
{ {
@ -1930,7 +1930,7 @@ u32 rtw_aes_decrypt(_adapter *padapter, u8 *precvframe)
u32 res = _SUCCESS; u32 res = _SUCCESS;
pframe = (unsigned char *)((union recv_frame *)precvframe)->u.hdr.rx_data; pframe = (unsigned char *)((union recv_frame *)precvframe)->u.hdr.rx_data;
/* 4 start to encrypt each fragment */ /* 4 start to encrypt each fragment */
if ((prxattrib->encrypt == _AES_)) { if (prxattrib->encrypt == _AES_) {
stainfo = rtw_get_stainfo(&padapter->stapriv , &prxattrib->ta[0]); stainfo = rtw_get_stainfo(&padapter->stapriv , &prxattrib->ta[0]);
if (stainfo != NULL) { if (stainfo != NULL) {

4
debian/README.Debian vendored Normal file
View File

@ -0,0 +1,4 @@
realtek-rtl8188eus DKMS module for Debian
This package was automatically generated by the DKMS system,
for distribution on Debian based operating systems.

156
debian/changelog vendored Normal file
View File

@ -0,0 +1,156 @@
realtek-rtl8188eus-dkms (5.3.9~git20230921.3fae723-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~git20230921.3fae723
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Mon, 15 Jan 2024 14:53:09 +0100
realtek-rtl8188eus-dkms (5.3.9~git20230101.f8ead57-0kali2) kali-dev; urgency=medium
[ Steev Klimaszewski ]
* Override dkms autopkgtest
[ Sophie Brun ]
* Import a patch to build for 6.3
-- Sophie Brun <sophie@offensive-security.com> Wed, 05 Jul 2023 14:32:27 +0200
realtek-rtl8188eus-dkms (5.3.9~git20230101.f8ead57-0kali1) kali-dev; urgency=medium
[ Kali Janitor ]
* Set upstream metadata fields: Repository.
* Update standards version to 4.6.2, no changes needed.
[ Sophie Brun ]
* New upstream version 5.3.9~git20230101.f8ead57
* Refresh patches
* Add support for Linux Kernel 6.1
-- Sophie Brun <sophie@offensive-security.com> Tue, 21 Feb 2023 14:51:34 +0100
realtek-rtl8188eus-dkms (5.3.9~git20221105.dab6e02-0kali1) kali-dev; urgency=medium
[ Kali Janitor ]
* Set upstream metadata fields: Repository-Browse.
[ Sophie Brun ]
* New upstream version 5.3.9~git20221105.dab6e02
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Thu, 10 Nov 2022 12:01:30 +0100
realtek-rtl8188eus-dkms (5.3.9~git20220829.4ba8e08-0kali1) kali-dev; urgency=medium
[ Arnaud Rebillout ]
* No more dh-exec (requires compat 13)
* Switch to dh-sequence-dkms
* Set PACKAGE_VERSION in override_dh_dkms
[ Kali Janitor ]
* Trim trailing whitespace.
* debian/copyright: use spaces rather than tabs to start continuation lines.
* Set upstream metadata fields: Bug-Database, Bug-Submit.
* Update standards version to 4.6.1, no changes needed.
[ Sophie Brun ]
* New upstream version 5.3.9~git20220829.4ba8e08
* Refresh patches
* Import upstream patch to fix the build with Linux 5.19
-- Sophie Brun <sophie@offensive-security.com> Thu, 06 Oct 2022 15:05:27 +0200
realtek-rtl8188eus-dkms (5.3.9~git20220319.0958f29-0kali3) kali-dev; urgency=medium
* Remove useless patch (we change version in debian/rules)
* Refresh patch
* Add a patch to fix the build with kernel 5.18
-- Sophie Brun <sophie@offensive-security.com> Tue, 21 Jun 2022 12:20:45 +0200
realtek-rtl8188eus-dkms (5.3.9~git20220319.0958f29-0kali2) kali-dev; urgency=medium
* Add a patch to fix build build with kernel 5.17
-- Sophie Brun <sophie@offensive-security.com> Wed, 18 May 2022 17:50:10 +0200
realtek-rtl8188eus-dkms (5.3.9~git20220319.0958f29-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~git20220319.0958f29
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Thu, 12 May 2022 11:02:51 +0200
realtek-rtl8188eus-dkms (5.3.9~git20210504.6146193-0kali2) kali-dev; urgency=medium
[ Ben Wilson ]
* Remove template comment and switch spaces to tabs
[ Sophie Brun ]
* Add a patch to fix the compilation with kernel 5.15
-- Sophie Brun <sophie@offensive-security.com> Tue, 14 Dec 2021 17:56:08 +0100
realtek-rtl8188eus-dkms (5.3.9~git20210504.6146193-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~git20210504.6146193
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Tue, 28 Sep 2021 11:00:05 +0200
realtek-rtl8188eus-dkms (5.3.9~git20210206.1e7145f-0kali2) kali-dev; urgency=medium
* Bump Standards-Version to 4.5.1
* Blacklist r8188eu
-- Sophie Brun <sophie@offensive-security.com> Tue, 13 Jul 2021 10:50:42 +0200
realtek-rtl8188eus-dkms (5.3.9~git20210206.1e7145f-0kali1) kali-dev; urgency=medium
* Update debian/watch
* New upstream version 5.3.9~git20210206.1e7145f
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Wed, 14 Apr 2021 17:25:11 +0200
realtek-rtl8188eus-dkms (5.3.9~git20201227-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~git20201227
* Refresh patches
-- Sophie Brun <sophie@offensive-security.com> Tue, 26 Jan 2021 17:04:18 +0100
realtek-rtl8188eus-dkms (5.3.9~git20200829-0kali2) kali-dev; urgency=medium
* Fix errors introduced in 5a7f22 (lintian-overrides)
-- Sophie Brun <sophie@offensive-security.com> Wed, 16 Sep 2020 15:54:13 +0200
realtek-rtl8188eus-dkms (5.3.9~git20200829-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~git20200829
* Refresh patches
* Add comment in debian/copyright
* Bump Standards-Version to 4.5.0
* Add lintian-overrides for dh-exec-subst-unknown-variable
-- Sophie Brun <sophie@offensive-security.com> Wed, 16 Sep 2020 15:07:29 +0200
realtek-rtl8188eus-dkms (5.3.9~git20200710-0kali1) kali-dev; urgency=medium
* New upstream version 5.3.9~20200710
-- Sophie Brun <sophie@offensive-security.com> Fri, 10 Jul 2020 08:49:51 +0200
realtek-rtl8188eus-dkms (5.3.9~git20200316-0kali1) kali-dev; urgency=medium
* Configure git-buildpackage for Kali
* Add GitLab's CI configuration file
* New upstream version 5.3.9~git20200316
-- Sophie Brun <sophie@offensive-security.com> Thu, 14 May 2020 11:45:14 +0200
realtek-rtl8188eus-dkms (5.3.9~20191129-0kali1) kali-dev; urgency=medium
* Initial release (see 5842)
-- Sophie Brun <sophie@offensive-security.com> Tue, 17 Dec 2019 17:14:38 +0100

18
debian/control vendored Normal file
View File

@ -0,0 +1,18 @@
Source: realtek-rtl8188eus-dkms
Section: contrib/kernel
Priority: optional
Maintainer: Kali Developers <devel@kali.org>
Uploaders: Sophie Brun <sophie@offensive-security.com>
Build-Depends: debhelper-compat (= 13), dh-sequence-dkms
Standards-Version: 4.6.2
Homepage: https://github.com/aircrack-ng/rtl8188eus
Vcs-Browser: https://gitlab.com/kalilinux/packages/realtek-rtl8188eus-dkms
Vcs-Git: https://gitlab.com/kalilinux/packages/realtek-rtl8188eus-dkms.git
Package: realtek-rtl8188eus-dkms
Architecture: all
Depends: dkms (>= 1.95), ${misc:Depends}
Description: Realtek RTL8188EUS driver in DKMS format
This package provides the source code for RTL8188EUS Linux driver (with
monitor mode and frame injection) to be build with dkms. Kernel sources or
headers are required to compile this module.

34
debian/copyright vendored Normal file
View File

@ -0,0 +1,34 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: realtek-rtl8188eus-dkms
Source: https://github.com/aircrack-ng/rtl8188eus
Comment: dkms package built during installation
Files: *
Copyright: 2007 - 2017 Realtek Corporation.
License: GPL-2
Files: os_dep/linux/rhashtable.*
Copyright: 2015 Herbert Xu <herbert@gondor.apana.org.au>
2014-2015 Thomas Graf <tgraf@suug.ch>
2008-2014 Patrick McHardy <kaber@trash.net>
License: GPL-2
Files: debian/*
Copyright: 2019 Sophie Brun <sophie@offensive-security.com>
License: GPL-2
License: GPL-2
This package is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 as published
by the Free Software Foundation.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

10
debian/gbp.conf vendored Normal file
View File

@ -0,0 +1,10 @@
[DEFAULT]
debian-branch = kali/master
debian-tag = kali/%(version)s
pristine-tar = True
[pq]
patch-numbers = False
[dch]
multimaint-merge = True

2
debian/kali-ci.yml vendored Normal file
View File

@ -0,0 +1,2 @@
include:
- https://gitlab.com/kalilinux/tools/kali-ci-pipeline/raw/master/recipes/kali.yml

View File

@ -0,0 +1,19 @@
From: Sophie Brun <sophie@offensive-security.com>
Date: Tue, 21 Feb 2023 14:49:29 +0100
Subject: Add Linux 6.1 build support
Origin: https://github.com/aircrack-ng/rtl8188eus/pull/226
Forwarded: not-needed
---
dkms.conf | 1 -
1 file changed, 1 deletion(-)
diff --git a/dkms.conf b/dkms.conf
index 2c60a99..d1d1dc8 100644
--- a/dkms.conf
+++ b/dkms.conf
@@ -7,4 +7,3 @@ PROCS_NUM=`nproc`
DEST_MODULE_LOCATION[0]="/updates"
MAKE="'make' -j$PROCS_NUM KVER=${kernelver} KSRC=/lib/modules/${kernelver}/build"
AUTOINSTALL="yes"
-REMAKE_INITRD=no

View File

@ -0,0 +1,25 @@
From: Sophie Brun <sophie@offensive-security.com>
Date: Wed, 18 May 2022 17:47:55 +0200
Subject: Build support with kernel v5.17
Origin: https://github.com/aircrack-ng/rtl8188eus/commit/13cc38399eb44f234a52dde5f94509e54a09c71f
Forwarded: not-needed
---
os_dep/linux/rtw_proc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/os_dep/linux/rtw_proc.c b/os_dep/linux/rtw_proc.c
index 8b1a424..9bd4041 100644
--- a/os_dep/linux/rtw_proc.c
+++ b/os_dep/linux/rtw_proc.c
@@ -39,6 +39,10 @@ inline struct proc_dir_entry *get_rtw_drv_proc(void)
#define proc_get_parent_data(inode) PDE((inode))->parent->data
#endif
+#if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+#define PDE_DATA(inode) pde_data(inode)
+#endif
+
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24))
#define get_proc_net proc_net
#else

2
debian/patches/series vendored Normal file
View File

@ -0,0 +1,2 @@
add-support-kernel-5.17.patch
add-linux-6.1-support.patch

2
debian/r8188eus-dkms.conf vendored Normal file
View File

@ -0,0 +1,2 @@
# blacklist the driver
blacklist r8188eu

1
debian/realtek-rtl8188eus-dkms.docs vendored Normal file
View File

@ -0,0 +1 @@
README.md

View File

@ -0,0 +1,2 @@
core hal include Kconfig Makefile os_dep platform usr/src/realtek-rtl8188eus-${env:DEB_VERSION_UPSTREAM}
debian/r8188eus-dkms.conf etc/modprobe.d

21
debian/rules vendored Executable file
View File

@ -0,0 +1,21 @@
#!/usr/bin/make -f
include /usr/share/dpkg/pkg-info.mk
export DEB_VERSION_UPSTREAM
%:
dh $@
override_dh_dkms:
# Force PACKAGE_VERSION to be DEB_VERSION_UPSTREAM
sed -i dkms.conf -e 's%^PACKAGE_VERSION=.*%PACKAGE_VERSION="$(DEB_VERSION_UPSTREAM)"%'
dh_dkms -- dkms.conf
execute_after_dh_fixperms:
find debian/realtek-rtl8188eus-dkms/usr/src -type f -exec chmod -x {} \;
# Nothing to configure, build or auto-install (all is done after
# installation using dkms)
override_dh_auto_configure:
override_dh_auto_build:
override_dh_auto_install:

22
debian/script-targz vendored Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
set -e
if [ "$1" = '--upstream-version' ]; then
new_version="$2"
else
printf "Missing --upstream-version argument" 1>&2
exit 1
fi
DEB_SOURCE="$(dpkg-parsechangelog -SSource)"
default_branch="$(git remote show https://github.com/aircrack-ng/rtl8188eus.git | grep 'HEAD' | sed 's/.*: v//')"
version="$(echo ${new_version} | sed 's/~git.*//')"
# fails if the upstream default branch has changed and is no longer the
# version mentioned in debian/watch
if [ "${default_branch}" != "${version}" ]; then
exit 1
fi

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

2
debian/tests/control vendored Normal file
View File

@ -0,0 +1,2 @@
Test-Command: debian/tests/dkms-autopkgtest
Restrictions: needs-root allow-stderr

229
debian/tests/dkms-autopkgtest vendored Executable file
View File

@ -0,0 +1,229 @@
#!/bin/sh
# Common autopkgtest script for testing a dkms source package.
# Author: Martin Pitt <martin.pitt@ubuntu.com>
# Copyright: (C) 2014 Canonical Ltd.
set -eu
export DEBIAN_FRONTEND=noninteractive
result=0
summary=
crlf="
"
header_packages=
check_for_linux_headers() {
# Act only on the first run.
if [ -n "$header_packages" ]; then
return
fi
# Which Linux header packages are installed?
header_packages=$(dpkg-query -f '${Status} ${Package}\n' -W 'linux-headers-*' 2>/dev/null | sed -r -n 's/^install ok installed //p')
if [ -n "$header_packages" ]; then
echo "I: Using the following Linux header packages that were already installed:"
for p in $header_packages ; do
echo "I: $p"
done
return
fi
# Which Linux header packages could be installed?
# linux-doc is a dependency generated by autodep8 for autopkgtest-pkg-dkms
# install only linux-headers-* matching the source version of linux-doc
wanted_source_version=$(dpkg-query -f '${source:Version}' -W linux-doc 2>/dev/null || true)
candidates=$(apt-cache search --names-only '^linux-headers-' | awk '{print $1}' | grep -v -E -e '-common(-rt)?$' | grep -v cloud)
echo "I: No Linux header packages are installed."
echo "I: Installing all available ones from src:linux $wanted_source_version:"
for p in $candidates ; do
if [ -z "$wanted_source_version" ]; then
echo "I: $p"
header_packages="$header_packages $p"
continue
fi
source_versions=$(apt-cache show $p | perl -ne 'if (/^$/) { print $s || $v, "\n"; $s=$v=""; } $s=$1 if /^Source: .* \((.*)\)$/; $v=$1 if /^Version: (.*)$/;')
for sv in $source_versions ; do
if [ "$sv" = "$wanted_source_version" ]; then
echo "I: install $p"
header_packages="$header_packages $p"
continue 2
fi
done
echo "I: skip $p"
done
RC=0
apt-get install --no-install-recommends -yq $header_packages </dev/null 2>&1 || RC=$?
if [ "$RC" -ne 0 ]; then
echo "E: Linux headers failed to install." >&2
exit 1
fi
}
run_pkg() {
pkg="$1"
test -x /usr/bin/openssl || apt-get install --no-install-recommends -yq openssl </dev/null 2>&1
echo "I: Removing binary package $pkg, to get clean state."
apt-get purge -yq $pkg </dev/null 2>&1 >/dev/null || true
echo "I: Installing binary package $pkg"
RC=0
apt-get install --no-install-recommends -yq $pkg </dev/null 2>&1 || RC=$?
if [ "$RC" -ne 0 ]; then
echo "E: Package $pkg failed to install." >&2
result=1
return
fi
# Try and remove dkms to spot packages which miss a dkms dependency
echo "I: Checking for missing dkms dependency by trying to deinstall dkms"
dpkg --remove dkms || true
if ! dkms_conf=$(dpkg -L $pkg | grep '/usr/src' | grep '/dkms.conf$'); then
echo "I: Package $pkg has no dkms.conf, skipping."
return
fi
check_for_linux_headers
echo "I: Testing binary package $pkg"
dkms_pkg=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_NAME" 2>/dev/null)
dkms_ver=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_VERSION" 2>/dev/null)
build_depends=$(bash -c ". $dkms_conf > /dev/null; echo \$BUILD_DEPENDS" 2>/dev/null)
versioned_build_depends=
for bd in $build_depends
do
bdpath=$(ls -d /usr/src/${bd}-*)
versioned_build_depends="$versioned_build_depends ${bd}/${bdpath#/usr/src/${bd}-}"
done
for k in $(ls -dv /lib/modules/*/build)
do
test -d "$k" || continue
kver="${k%/build}"
kver="${kver#/lib/modules/}"
# If any linux-meta is in triggers, only test abistems that
# match triggers otherwise continue. This helps integration
# with adt-matrix which specifically requests test results
# against each individual linux-meta and tracks unique results
# per kernel abi.
abistem=$(echo $kver | sed 's/-[a-z]*$//')
case "${ADT_TEST_TRIGGERS-}" in
*linux-meta*)
case "$ADT_TEST_TRIGGERS" in
*"$abistem"*)
;;
*)
continue
;;
esac
esac
for bdv in $versioned_build_depends
do
echo "I: Trying to install build dependency $bdv for $kver"
dkms install "$bdv" -k "$kver" || test $? = 77
done
echo "I: Trying to build $dkms_pkg/$dkms_ver for $kver"
res=0
dkms build -m "$dkms_pkg" -v "$dkms_ver" -k "$kver" || res=$?
if [ "$res" = 77 ]; then
echo "I: $dkms_pkg/$dkms_ver is not supported on $kver (BUILD_EXCLUSIVE directive), skipping."
summary="${summary}I: SKIP $kver${crlf}"
continue
fi
if [ "$res" != 0 ]; then
echo "E: $dkms_pkg/$dkms_ver failed to build for $kver" >&2
makelog="/var/lib/dkms/$dkms_pkg/$dkms_ver/build/make.log"
echo "========== $makelog ==========" >&2
cat "$makelog" >&2 || true
echo "====================" >&2
summary="${summary}I: FAIL $kver${crlf}"
result=1
continue
fi
if ! dkms install --force -m "$dkms_pkg" -v "$dkms_ver" -k "$kver" ; then
echo "E: $dkms_pkg/$dkms_ver failed to install for $kver" >&2
summary="${summary}I: FAIL $kver${crlf}"
result=1
continue
fi
echo "I: Testing if $dkms_pkg modules are correctly installed."
dkmsstatus="$(dkms status $dkms_pkg -k $kver)"
echo "$dkmsstatus"
if [ -z "$dkmsstatus" ]; then
echo "E: dkms status output is empty!" >&2
summary="${summary}I: FAIL $kver${crlf}"
result=1
continue
fi
if ! echo "$dkmsstatus" | grep -q "installed$"; then
echo "E: not installed" >&2
summary="${summary}I: FAIL $kver${crlf}"
result=1
continue
fi
summary="${summary}I: PASS $kver${crlf}"
done
# collect build logs as artifacts
if [ -d /var/lib/dkms ]; then
(cd /var/lib/dkms; find $dkms_pkg -name "make.log" -print0 | xargs -r -0 tar cvz) > "${AUTOPKGTEST_ARTIFACTS:-.}/$pkg-make-logs.tar.gz"
fi
# skip modprobing for now; this fails too often (needs particular
# hardware/firmware/etc)
# for mod in $(awk -F '"' '/^BUILT_MODULE_NAME/ {print $2}' $dkms_conf); do
# echo "I: modprobe $mod"
# if ! modprobe $mod; then
# echo "E: Failed to modprobe module $mod" >&2
# exit 1
# else
# echo "I: $modname loaded"
# fi
# done
}
# Do not (fail to) build the modules upon linux-header-* and *-dkms package
# installation, which can cause apt-get to fail. We will do this later with
# improved error reporting.
# (This only works if the *-dkms package is not yet installed.)
touch /etc/dkms/no-autoinstall
pkg_list="$*"
if [ -z "$pkg_list" ]; then
test -x /usr/bin/grep-dctrl || apt-get install --no-install-recommends -yq dctrl-tools </dev/null 2>&1
pkg_list="$(grep-dctrl -FDepends -e '(^| )dkms' -o -FPackage -e '\-dkms' debian/control -sPackage -n)"
fi
for pkg in $pkg_list; do
# package might be arch: restriction or udeb etc.
if ! apt-cache show $pkg >/dev/null 2>&1; then
echo "I: Skipping unavailable package $pkg"
continue
fi
run_pkg $pkg
done
if [ -n "$summary" ]; then
echo "I: Summary:"
echo -n "$summary"
fi
rm -f /etc/dkms/no-autoinstall
exit $result
# vim: sw=4:ts=4:et

5
debian/upstream/metadata vendored Normal file
View File

@ -0,0 +1,5 @@
---
Bug-Database: https://github.com/aircrack-ng/rtl8188eus/issues
Bug-Submit: https://github.com/aircrack-ng/rtl8188eus/issues/new
Repository: https://github.com/aircrack-ng/rtl8188eus.git
Repository-Browse: https://github.com/aircrack-ng/rtl8188eus

9
debian/watch vendored Normal file
View File

@ -0,0 +1,9 @@
version=4
opts="mode=git, pretty=5.3.9~git%cd.%h, pgpmode=none" \
https://github.com/aircrack-ng/rtl8188eus.git \
HEAD debian debian/script-targz
# Use the following when upstream starts to tag releases:
#opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%realtek-rtl8188eus-dkms-$1.tar.gz%" \
# https://github.com/aircrack-ng/rtl8188eus/tags \
# (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate

View File

@ -1,5 +1,5 @@
PACKAGE_NAME="realtek-rtl8188eus" PACKAGE_NAME="realtek-rtl8188eus"
PACKAGE_VERSION="5.3.9~20200316" PACKAGE_VERSION="5.3.9~20221105"
CLEAN="'make' clean" CLEAN="'make' clean"
BUILT_MODULE_NAME[0]=8188eu BUILT_MODULE_NAME[0]=8188eu
PROCS_NUM=`nproc` PROCS_NUM=`nproc`

View File

@ -407,7 +407,7 @@ void rtw_hal_turbo_edca(_adapter *adapter)
return; return;
} }
if ((pregpriv->wifi_spec == 1)) { /* || (pmlmeinfo->HT_enable == 0)) */ if (pregpriv->wifi_spec == 1) { /* || (pmlmeinfo->HT_enable == 0)) */
precvpriv->is_any_non_be_pkts = _FALSE; precvpriv->is_any_non_be_pkts = _FALSE;
return; return;
} }

View File

@ -171,7 +171,7 @@ void hal_mpt_CCKTxPowerAdjust(PADAPTER Adapter, BOOLEAN bInCH14)
} else if (IS_HARDWARE_TYPE_8723D(Adapter)) { } else if (IS_HARDWARE_TYPE_8723D(Adapter)) {
/* 2.4G CCK TX DFIR */ /* 2.4G CCK TX DFIR */
/* 2016.01.20 Suggest from RS BB mingzhi*/ /* 2016.01.20 Suggest from RS BB mingzhi*/
if ((u1Channel == 14)) { if (u1Channel == 14) {
phy_set_bb_reg(Adapter, rCCK0_TxFilter2, bMaskDWord, 0x0000B81C); phy_set_bb_reg(Adapter, rCCK0_TxFilter2, bMaskDWord, 0x0000B81C);
phy_set_bb_reg(Adapter, rCCK0_DebugPort, bMaskDWord, 0x00000000); phy_set_bb_reg(Adapter, rCCK0_DebugPort, bMaskDWord, 0x00000000);
phy_set_bb_reg(Adapter, 0xAAC, bMaskDWord, 0x00003667); phy_set_bb_reg(Adapter, 0xAAC, bMaskDWord, 0x00003667);

View File

@ -354,7 +354,7 @@ halrf_cmn_info_init(
void void
halrf_cmn_info_hook( halrf_cmn_info_hook(
void *dm_void, void *dm_void,
u32 cmn_info, enum halrf_cmninfo_hook cmn_info,
void *value void *value
); );

View File

@ -24,7 +24,7 @@
*****************************************************************************/ *****************************************************************************/
#ifndef __HALRF_FEATURES_H__ #ifndef __HALRF_FEATURES_H__
#define __HALRF_FEATURES #define __HALRF_FEATURES_H__
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)

View File

@ -25,7 +25,7 @@
#ifndef __PHYDMKFREE_H__ #ifndef __PHYDMKFREE_H__
#define __PHYDKFREE_H__ #define __PHYDMKFREE_H__
#define KFREE_VERSION "1.0" #define KFREE_VERSION "1.0"

View File

@ -52,12 +52,10 @@ phydm_rx_statistic_cal(
phydm->phy_dbg_info.ht_pkt_not_zero = true; phydm->phy_dbg_info.ht_pkt_not_zero = true;
if (phydm->support_ic_type & PHYSTS_2ND_TYPE_IC) { if (phydm->support_ic_type & PHYSTS_2ND_TYPE_IC) {
if ((bw_idx == *phydm->band_width)) { if (bw_idx == *phydm->band_width) {
phydm->phy_dbg_info.num_qry_ht_pkt[date_rate - ODM_RATEMCS0]++; phydm->phy_dbg_info.num_qry_ht_pkt[date_rate - ODM_RATEMCS0]++;
} else if (bw_idx == CHANNEL_WIDTH_20) { } else if (bw_idx == CHANNEL_WIDTH_20) {
phydm->phy_dbg_info.num_qry_pkt_sc_20m[date_rate - ODM_RATEMCS0]++; phydm->phy_dbg_info.num_qry_pkt_sc_20m[date_rate - ODM_RATEMCS0]++;
phydm->phy_dbg_info.low_bw_20_occur = true; phydm->phy_dbg_info.low_bw_20_occur = true;
} }
@ -81,7 +79,6 @@ phydm_rx_statistic_cal(
#endif #endif
{ {
phydm->phy_dbg_info.vht_pkt_not_zero = true; phydm->phy_dbg_info.vht_pkt_not_zero = true;
if (phydm->support_ic_type & PHYSTS_2ND_TYPE_IC) { if (phydm->support_ic_type & PHYSTS_2ND_TYPE_IC) {
if ((bw_idx == *phydm->band_width)) { if ((bw_idx == *phydm->band_width)) {
phydm->phy_dbg_info.num_qry_vht_pkt[date_rate - ODM_RATEVHTSS1MCS0]++; phydm->phy_dbg_info.num_qry_vht_pkt[date_rate - ODM_RATEVHTSS1MCS0]++;

View File

@ -1529,12 +1529,13 @@ enum ieee80211_state {
(((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \
(((Addr[5]) & 0xff) == 0xff)) (((Addr[5]) & 0xff) == 0xff))
#else #else
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 00))
extern __inline int is_multicast_mac_addr(const u8 *addr) extern __inline int is_multicast_mac_addr(const u8 *addr)
{ {
return (addr[0] != 0xff) && (0x01 & addr[0]); return (addr[0] != 0xff) && (0x01 & addr[0]);
} }
extern __inline int is_broadcast_mac_addr(const u8 *addr) static __inline int is_broadcast_mac_addr(const u8 *addr)
{ {
return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \
(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
@ -1545,6 +1546,24 @@ extern __inline int is_zero_mac_addr(const u8 *addr)
return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \ return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \
(addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00)); (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));
} }
#else
static __inline int is_multicast_mac_addr(const u8 *addr)
{
return (addr[0] != 0xff) && (0x01 & addr[0]);
}
static __inline int is_broadcast_mac_addr(const u8 *addr)
{
return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \
(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
}
static __inline int is_zero_mac_addr(const u8 *addr)
{
return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \
(addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));
}
#endif /* LINUX_VERSION_CODE */
#endif /* PLATFORM_FREEBSD */ #endif /* PLATFORM_FREEBSD */
#define CFG_IEEE80211_RESERVE_FCS (1<<0) #define CFG_IEEE80211_RESERVE_FCS (1<<0)

File diff suppressed because it is too large Load Diff

View File

@ -417,7 +417,13 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8
if (ret != _SUCCESS) if (ret != _SUCCESS)
goto exit; goto exit;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0))
cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0, 0);
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0))
cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0);
#else
cfg80211_ch_switch_notify(adapter->pnetdev, &chdef); cfg80211_ch_switch_notify(adapter->pnetdev, &chdef);
#endif
#else #else
int freq = rtw_ch2freq(ch); int freq = rtw_ch2freq(ch);
@ -1099,7 +1105,12 @@ check_bss:
#endif #endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) || defined(RHEL79)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) || defined(RHEL79))
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0))
roam_info.links[0].channel = notify_channel;
roam_info.links[0].bssid = cur_network->network.MacAddress;
#else
roam_info.bssid = cur_network->network.MacAddress; roam_info.bssid = cur_network->network.MacAddress;
#endif
roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2; roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2;
roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2; roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2;
roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6; roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6;
@ -1130,13 +1141,17 @@ check_bss:
RTW_INFO("pwdev->sme_state(b)=%d\n", pwdev->sme_state); RTW_INFO("pwdev->sme_state(b)=%d\n", pwdev->sme_state);
#endif #endif
if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) != _TRUE) if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) != _TRUE) {
rtw_cfg80211_connect_result(pwdev, cur_network->network.MacAddress struct cfg80211_bss *bss;
bss = cfg80211_get_bss(pwdev->wiphy, NULL, cur_network->network.MacAddress, NULL, 0,
IEEE80211_BSS_TYPE_ANY, IEEE80211_PRIVACY_ANY);
cfg80211_connect_bss(wdev_to_ndev(pwdev), cur_network->network.MacAddress, bss
, pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2 , pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2
, pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2 , pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2
, pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6 , pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6
, pmlmepriv->assoc_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6 , pmlmepriv->assoc_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6
, WLAN_STATUS_SUCCESS, GFP_ATOMIC); , WLAN_STATUS_SUCCESS, GFP_ATOMIC, NL80211_TIMEOUT_UNSPECIFIED);
}
#if defined(RHEL79) && (LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0) || defined(COMPAT_KERNEL_RELEASE)) #if defined(RHEL79) && (LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0) || defined(COMPAT_KERNEL_RELEASE))
RTW_INFO("pwdev->sme_state(a)=%d\n", pwdev->sme_state); RTW_INFO("pwdev->sme_state(a)=%d\n", pwdev->sme_state);
#endif #endif
@ -1652,6 +1667,9 @@ exit:
} }
static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
, int link_id
#endif
, u8 key_index , u8 key_index
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)
, bool pairwise , bool pairwise
@ -1796,6 +1814,9 @@ addkey_end:
} }
static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
, int link_id
#endif
, u8 keyid , u8 keyid
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)
, bool pairwise , bool pairwise
@ -1961,6 +1982,9 @@ exit:
} }
static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev, static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
int link_id,
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)
u8 key_index, bool pairwise, const u8 *mac_addr) u8 key_index, bool pairwise, const u8 *mac_addr)
#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) */ #else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) */
@ -1981,7 +2005,11 @@ static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
} }
static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
struct net_device *ndev, u8 key_index struct net_device *ndev,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
int link_id,
#endif
u8 key_index
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE)
, bool unicast, bool multicast , bool unicast, bool multicast
#endif #endif
@ -2029,7 +2057,11 @@ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30))
int cfg80211_rtw_set_default_mgmt_key(struct wiphy *wiphy, int cfg80211_rtw_set_default_mgmt_key(struct wiphy *wiphy,
struct net_device *ndev, u8 key_index) struct net_device *ndev,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
int link_id,
#endif
u8 key_index)
{ {
#define SET_DEF_KEY_PARAM_FMT " key_index=%d" #define SET_DEF_KEY_PARAM_FMT " key_index=%d"
#define SET_DEF_KEY_PARAM_ARG , key_index #define SET_DEF_KEY_PARAM_ARG , key_index
@ -4876,7 +4908,11 @@ static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *nd
return ret; return ret;
} }
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0))
static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev, unsigned int link_id)
#else
static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
#endif
{ {
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
@ -9634,7 +9670,11 @@ void rtw_wdev_unregister(struct wireless_dev *wdev)
rtw_cfg80211_indicate_scan_done(adapter, _TRUE); rtw_cfg80211_indicate_scan_done(adapter, _TRUE);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) || defined(COMPAT_KERNEL_RELEASE) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) || defined(COMPAT_KERNEL_RELEASE)
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0))
if (wdev->connected) {
#else
if (wdev->current_bss) { if (wdev->current_bss) {
#endif
RTW_INFO(FUNC_ADPT_FMT" clear current_bss by cfg80211_disconnected\n", FUNC_ADPT_ARG(adapter)); RTW_INFO(FUNC_ADPT_FMT" clear current_bss by cfg80211_disconnected\n", FUNC_ADPT_ARG(adapter));
rtw_cfg80211_indicate_disconnect(adapter, 0, 1); rtw_cfg80211_indicate_disconnect(adapter, 0, 1);
} }

View File

@ -363,7 +363,7 @@ void rtw_cfg80211_deinit_rfkill(struct wiphy *wiphy);
#define rtw_cfg80211_connect_result(wdev, bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp) cfg80211_connect_result(wdev_to_ndev(wdev), bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp) #define rtw_cfg80211_connect_result(wdev, bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp) cfg80211_connect_result(wdev_to_ndev(wdev), bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp)
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) && !defined(RHEL79)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) && !defined(RHEL79))
#define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, gfp) #define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, ie_len, gfp)
#else #else
#define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, locally_generated, gfp) #define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, locally_generated, gfp)
#endif #endif

View File

@ -9789,7 +9789,7 @@ static int rtw_mp_efuse_set(struct net_device *dev,
rtw_hal_read_chip_info(padapter); rtw_hal_read_chip_info(padapter);
/* set mac addr*/ /* set mac addr*/
rtw_macaddr_cfg(adapter_mac_addr(padapter), get_hal_mac_addr(padapter)); rtw_macaddr_cfg(adapter_mac_addr(padapter), get_hal_mac_addr(padapter));
_rtw_memcpy(padapter->pnetdev->dev_addr, get_hal_mac_addr(padapter), ETH_ALEN); /* set mac addr to net_device */ _rtw_memcpy((void *)padapter->pnetdev->dev_addr, get_hal_mac_addr(padapter), ETH_ALEN); /* set mac addr to net_device */
#ifdef CONFIG_P2P #ifdef CONFIG_P2P
rtw_init_wifidirect_addrs(padapter, adapter_mac_addr(padapter), adapter_mac_addr(padapter)); rtw_init_wifidirect_addrs(padapter, adapter_mac_addr(padapter), adapter_mac_addr(padapter));

View File

@ -1199,7 +1199,11 @@ static int rtw_net_set_mac_address(struct net_device *pnetdev, void *addr)
} }
_rtw_memcpy(adapter_mac_addr(padapter), sa->sa_data, ETH_ALEN); /* set mac addr to adapter */ _rtw_memcpy(adapter_mac_addr(padapter), sa->sa_data, ETH_ALEN); /* set mac addr to adapter */
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
eth_hw_addr_set(pnetdev, sa->sa_data);
#else
_rtw_memcpy(pnetdev->dev_addr, sa->sa_data, ETH_ALEN); /* set mac addr to net_device */ _rtw_memcpy(pnetdev->dev_addr, sa->sa_data, ETH_ALEN); /* set mac addr to net_device */
#endif
#if 0 #if 0
if (rtw_is_hw_init_completed(padapter)) { if (rtw_is_hw_init_completed(padapter)) {
@ -1614,7 +1618,11 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name)
u8 rtnl_lock_needed = rtw_rtnl_lock_needed(dvobj); u8 rtnl_lock_needed = rtw_rtnl_lock_needed(dvobj);
#ifdef CONFIG_RTW_NAPI #ifdef CONFIG_RTW_NAPI
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
netif_napi_add_weight(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
#else
netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT); netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
#endif
#endif /* CONFIG_RTW_NAPI */ #endif /* CONFIG_RTW_NAPI */
#if defined(CONFIG_IOCTL_CFG80211) #if defined(CONFIG_IOCTL_CFG80211)
@ -1628,7 +1636,11 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name)
/* alloc netdev name */ /* alloc netdev name */
rtw_init_netdev_name(ndev, name); rtw_init_netdev_name(ndev, name);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
eth_hw_addr_set(ndev, adapter_mac_addr(adapter));
#else
_rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN); _rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN);
#endif
#if defined(CONFIG_NET_NS) #if defined(CONFIG_NET_NS)
dev_net_set(ndev, wiphy_net(adapter_to_wiphy(adapter))); dev_net_set(ndev, wiphy_net(adapter_to_wiphy(adapter)));
#endif //defined(CONFIG_NET_NS) #endif //defined(CONFIG_NET_NS)

View File

@ -145,7 +145,7 @@ struct sk_buff *rtw_cfg80211_vendor_event_alloc(
struct sk_buff *skb; struct sk_buff *skb;
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
skb = cfg80211_vendor_event_alloc(wiphy, len, event_id, gfp); skb = cfg80211_vendor_event_alloc(wiphy, NULL, len, event_id, gfp);
#else #else
skb = cfg80211_vendor_event_alloc(wiphy, wdev, len, event_id, gfp); skb = cfg80211_vendor_event_alloc(wiphy, wdev, len, event_id, gfp);
#endif #endif

View File

@ -45,6 +45,10 @@ inline struct proc_dir_entry *get_rtw_drv_proc(void)
#define get_proc_net init_net.proc_net #define get_proc_net init_net.proc_net
#endif #endif
#if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
#define PDE_DATA(inode) pde_data(inode)
#endif
inline struct proc_dir_entry *rtw_proc_create_dir(const char *name, struct proc_dir_entry *parent, void *data) inline struct proc_dir_entry *rtw_proc_create_dir(const char *name, struct proc_dir_entry *parent, void *data)
{ {
struct proc_dir_entry *entry; struct proc_dir_entry *entry;

View File

@ -160,6 +160,7 @@ static struct usb_device_id rtw_usb_id_tbl[] = {
{USB_DEVICE(0x2001, 0x3311), .driver_info = RTL8188E}, /* DLink GO-USB-N150 REV B1 */ {USB_DEVICE(0x2001, 0x3311), .driver_info = RTL8188E}, /* DLink GO-USB-N150 REV B1 */
{USB_DEVICE(0x2001, 0x331B), .driver_info = RTL8188E}, /* DLink DWA-121 REV B1 */ {USB_DEVICE(0x2001, 0x331B), .driver_info = RTL8188E}, /* DLink DWA-121 REV B1 */
{USB_DEVICE(0x056E, 0x4008), .driver_info = RTL8188E}, /* Elecom WDC-150SU2M */ {USB_DEVICE(0x056E, 0x4008), .driver_info = RTL8188E}, /* Elecom WDC-150SU2M */
{USB_DEVICE(0x7392, 0xB811), .driver_info = RTL8188E}, /* Edimax EW-7811UN v2 */
#endif #endif
#ifdef CONFIG_RTL8812A #ifdef CONFIG_RTL8812A

View File

@ -1268,8 +1268,12 @@ u32 _rtw_down_sema(_sema *sema)
inline void thread_exit(_completion *comp) inline void thread_exit(_completion *comp)
{ {
#ifdef PLATFORM_LINUX #ifdef PLATFORM_LINUX
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
kthread_complete_and_exit(comp, 0);
#else
complete_and_exit(comp, 0); complete_and_exit(comp, 0);
#endif #endif
#endif
#ifdef PLATFORM_FREEBSD #ifdef PLATFORM_FREEBSD
printf("%s", "RTKTHREAD_exit"); printf("%s", "RTKTHREAD_exit");
@ -2447,7 +2451,7 @@ int rtw_change_ifname(_adapter *padapter, const char *ifname)
rtw_init_netdev_name(pnetdev, ifname); rtw_init_netdev_name(pnetdev, ifname);
_rtw_memcpy(pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN); _rtw_memcpy((void *)pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN);
if (rtnl_lock_needed) if (rtnl_lock_needed)
ret = register_netdev(pnetdev); ret = register_netdev(pnetdev);
@ -2570,7 +2574,9 @@ u64 rtw_division64(u64 x, u64 y)
inline u32 rtw_random32(void) inline u32 rtw_random32(void)
{ {
#ifdef PLATFORM_LINUX #ifdef PLATFORM_LINUX
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
return get_random_u32();
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
return prandom_u32(); return prandom_u32();
#elif (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)) #elif (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18))
u32 random_int; u32 random_int;

File diff suppressed because it is too large Load Diff

View File

@ -1,497 +0,0 @@
/******************************************************************************
*
* Copyright(c) 2007 - 2017 Realtek Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*****************************************************************************/
#ifndef __RTW_SECURITY_H_
#define __RTW_SECURITY_H_
#define _NO_PRIVACY_ 0x0
#define _WEP40_ 0x1
#define _TKIP_ 0x2
#define _TKIP_WTMIC_ 0x3
#define _AES_ 0x4
#define _WEP104_ 0x5
#define _SMS4_ 0x06
#define _WEP_WPA_MIXED_ 0x07 /* WEP + WPA */
#define _BIP_ 0x8
/* 802.11W use wrong key */
#define IEEE80211W_RIGHT_KEY 0x0
#define IEEE80211W_WRONG_KEY 0x1
#define IEEE80211W_NO_KEY 0x2
#define CCMPH_2_PN(ch) ((ch) & 0x000000000000ffff) \
| (((ch) & 0xffffffff00000000) >> 16)
#define is_wep_enc(alg) (((alg) == _WEP40_) || ((alg) == _WEP104_))
const char *security_type_str(u8 value);
#define _WPA_IE_ID_ 0xdd
#define _WPA2_IE_ID_ 0x30
#define RTW_SHA256_MAC_LEN 32
#define AES_BLOCK_SIZE 16
#define AES_PRIV_SIZE (4 * 44)
#define RTW_KEK_LEN 16
#define RTW_KCK_LEN 16
#define RTW_TKIP_MIC_LEN 8
#define RTW_REPLAY_CTR_LEN 8
#define INVALID_SEC_MAC_CAM_ID 0xFF
typedef enum {
ENCRYP_PROTOCOL_OPENSYS, /* open system */
ENCRYP_PROTOCOL_WEP, /* WEP */
ENCRYP_PROTOCOL_WPA, /* WPA */
ENCRYP_PROTOCOL_WPA2, /* WPA2 */
ENCRYP_PROTOCOL_WAPI, /* WAPI: Not support in this version */
ENCRYP_PROTOCOL_MAX
} ENCRYP_PROTOCOL_E;
#ifndef Ndis802_11AuthModeWPA2
#define Ndis802_11AuthModeWPA2 (Ndis802_11AuthModeWPANone + 1)
#endif
#ifndef Ndis802_11AuthModeWPA2PSK
#define Ndis802_11AuthModeWPA2PSK (Ndis802_11AuthModeWPANone + 2)
#endif
union pn48 {
u64 val;
#ifdef CONFIG_LITTLE_ENDIAN
struct {
u8 TSC0;
u8 TSC1;
u8 TSC2;
u8 TSC3;
u8 TSC4;
u8 TSC5;
u8 TSC6;
u8 TSC7;
} _byte_;
#elif defined(CONFIG_BIG_ENDIAN)
struct {
u8 TSC7;
u8 TSC6;
u8 TSC5;
u8 TSC4;
u8 TSC3;
u8 TSC2;
u8 TSC1;
u8 TSC0;
} _byte_;
#endif
};
union Keytype {
u8 skey[16];
u32 lkey[4];
};
typedef struct _RT_PMKID_LIST {
u8 bUsed;
u8 Bssid[6];
u8 PMKID[16];
u8 SsidBuf[33];
u8 *ssid_octet;
u16 ssid_length;
} RT_PMKID_LIST, *PRT_PMKID_LIST;
struct security_priv {
u32 dot11AuthAlgrthm; /* 802.11 auth, could be open, shared, 8021x and authswitch */
u32 dot11PrivacyAlgrthm; /* This specify the privacy for shared auth. algorithm. */
/* WEP */
u32 dot11PrivacyKeyIndex; /* this is only valid for legendary wep, 0~3 for key id. (tx key index) */
union Keytype dot11DefKey[6]; /* this is only valid for def. key */
u32 dot11DefKeylen[6];
u8 dot11Def_camid[6];
u8 key_mask; /* use to restore wep key after hal_init */
u32 dot118021XGrpPrivacy; /* This specify the privacy algthm. used for Grp key */
u32 dot118021XGrpKeyid; /* key id used for Grp Key ( tx key index) */
union Keytype dot118021XGrpKey[6]; /* 802.1x Group Key, for inx0 and inx1 */
union Keytype dot118021XGrptxmickey[6];
union Keytype dot118021XGrprxmickey[6];
union pn48 dot11Grptxpn; /* PN48 used for Grp Key xmit. */
union pn48 dot11Grprxpn; /* PN48 used for Grp Key recv. */
u8 iv_seq[4][8];
#ifdef CONFIG_IEEE80211W
u32 dot11wBIPKeyid; /* key id used for BIP Key ( tx key index) */
union Keytype dot11wBIPKey[6]; /* BIP Key, for index4 and index5 */
union pn48 dot11wBIPtxpn; /* PN48 used for BIP xmit. */
union pn48 dot11wBIPrxpn; /* PN48 used for BIP recv. */
#endif /* CONFIG_IEEE80211W */
#ifdef CONFIG_AP_MODE
/* extend security capabilities for AP_MODE */
unsigned int dot8021xalg;/* 0:disable, 1:psk, 2:802.1x */
unsigned int wpa_psk;/* 0:disable, bit(0): WPA, bit(1):WPA2 */
unsigned int wpa_group_cipher;
unsigned int wpa2_group_cipher;
unsigned int wpa_pairwise_cipher;
unsigned int wpa2_pairwise_cipher;
u8 mfp_opt;
#endif
#ifdef CONFIG_CONCURRENT_MODE
u8 dot118021x_bmc_cam_id;
#endif
/*IEEE802.11-2012 Std. Table 8-101 AKM Suite Selectors*/
u32 rsn_akm_suite_type;
u8 wps_ie[MAX_WPS_IE_LEN];/* added in assoc req */
int wps_ie_len;
u8 binstallGrpkey;
#ifdef CONFIG_GTK_OL
u8 binstallKCK_KEK;
#endif /* CONFIG_GTK_OL */
#ifdef CONFIG_IEEE80211W
u8 binstallBIPkey;
#endif /* CONFIG_IEEE80211W */
u8 busetkipkey;
u8 bcheck_grpkey;
u8 bgrpkey_handshake;
/* u8 packet_cnt; */ /* unused, removed */
s32 sw_encrypt;/* from registry_priv */
s32 sw_decrypt;/* from registry_priv */
s32 hw_decrypted;/* if the rx packets is hw_decrypted==_FALSE, it means the hw has not been ready. */
/* keeps the auth_type & enc_status from upper layer ioctl(wpa_supplicant or wzc) */
u32 ndisauthtype; /* NDIS_802_11_AUTHENTICATION_MODE */
u32 ndisencryptstatus; /* NDIS_802_11_ENCRYPTION_STATUS */
NDIS_802_11_WEP ndiswep;
#ifdef PLATFORM_WINDOWS
u8 KeyMaterial[16];/* variable length depending on above field. */
#endif
u8 assoc_info[600];
u8 szofcapability[256]; /* for wpa2 usage */
u8 oidassociation[512]; /* for wpa/wpa2 usage */
u8 authenticator_ie[256]; /* store ap security information element */
u8 supplicant_ie[256]; /* store sta security information element */
/* for tkip countermeasure */
systime last_mic_err_time;
u8 btkip_countermeasure;
u8 btkip_wait_report;
systime btkip_countermeasure_time;
/* --------------------------------------------------------------------------- */
/* For WPA2 Pre-Authentication. */
/* --------------------------------------------------------------------------- */
/* u8 RegEnablePreAuth; */ /* Default value: Pre-Authentication enabled or not, from registry "EnablePreAuth". Added by Annie, 2005-11-01. */
/* u8 EnablePreAuthentication; */ /* Current Value: Pre-Authentication enabled or not. */
RT_PMKID_LIST PMKIDList[NUM_PMKID_CACHE]; /* Renamed from PreAuthKey[NUM_PRE_AUTH_KEY]. Annie, 2006-10-13. */
u8 PMKIDIndex;
/* u32 PMKIDCount; */ /* Added by Annie, 2006-10-13. */
/* u8 szCapability[256]; */ /* For WPA2-PSK using zero-config, by Annie, 2005-09-20. */
u8 bWepDefaultKeyIdxSet;
#define DBG_SW_SEC_CNT
#ifdef DBG_SW_SEC_CNT
u64 wep_sw_enc_cnt_bc;
u64 wep_sw_enc_cnt_mc;
u64 wep_sw_enc_cnt_uc;
u64 wep_sw_dec_cnt_bc;
u64 wep_sw_dec_cnt_mc;
u64 wep_sw_dec_cnt_uc;
u64 tkip_sw_enc_cnt_bc;
u64 tkip_sw_enc_cnt_mc;
u64 tkip_sw_enc_cnt_uc;
u64 tkip_sw_dec_cnt_bc;
u64 tkip_sw_dec_cnt_mc;
u64 tkip_sw_dec_cnt_uc;
u64 aes_sw_enc_cnt_bc;
u64 aes_sw_enc_cnt_mc;
u64 aes_sw_enc_cnt_uc;
u64 aes_sw_dec_cnt_bc;
u64 aes_sw_dec_cnt_mc;
u64 aes_sw_dec_cnt_uc;
#endif /* DBG_SW_SEC_CNT */
};
#ifdef CONFIG_IEEE80211W
#define SEC_IS_BIP_KEY_INSTALLED(sec) ((sec)->binstallBIPkey)
#else
#define SEC_IS_BIP_KEY_INSTALLED(sec) _FALSE
#endif
struct rtw_sha256_state {
u64 length;
u32 state[8], curlen;
u8 buf[64];
};
#define GET_ENCRY_ALGO(psecuritypriv, psta, encry_algo, bmcst)\
do {\
switch (psecuritypriv->dot11AuthAlgrthm) {\
case dot11AuthAlgrthm_Open:\
case dot11AuthAlgrthm_Shared:\
case dot11AuthAlgrthm_Auto:\
encry_algo = (u8)psecuritypriv->dot11PrivacyAlgrthm;\
break;\
case dot11AuthAlgrthm_8021X:\
if (bmcst)\
encry_algo = (u8)psecuritypriv->dot118021XGrpPrivacy;\
else\
encry_algo = (u8) psta->dot118021XPrivacy;\
break;\
case dot11AuthAlgrthm_WAPI:\
encry_algo = (u8)psecuritypriv->dot11PrivacyAlgrthm;\
break;\
} \
} while (0)
#define _AES_IV_LEN_ 8
#define SET_ICE_IV_LEN(iv_len, icv_len, encrypt)\
do {\
switch (encrypt) {\
case _WEP40_:\
case _WEP104_:\
iv_len = 4;\
icv_len = 4;\
break;\
case _TKIP_:\
iv_len = 8;\
icv_len = 4;\
break;\
case _AES_:\
iv_len = 8;\
icv_len = 8;\
break;\
case _SMS4_:\
iv_len = 18;\
icv_len = 16;\
break;\
default:\
iv_len = 0;\
icv_len = 0;\
break;\
} \
} while (0)
#define GET_TKIP_PN(iv, dot11txpn)\
do {\
dot11txpn._byte_.TSC0 = iv[2];\
dot11txpn._byte_.TSC1 = iv[0];\
dot11txpn._byte_.TSC2 = iv[4];\
dot11txpn._byte_.TSC3 = iv[5];\
dot11txpn._byte_.TSC4 = iv[6];\
dot11txpn._byte_.TSC5 = iv[7];\
} while (0)
#define ROL32(A, n) (((A) << (n)) | (((A)>>(32-(n))) & ((1UL << (n)) - 1)))
#define ROR32(A, n) ROL32((A), 32-(n))
struct mic_data {
u32 K0, K1; /* Key */
u32 L, R; /* Current state */
u32 M; /* Message accumulator (single word) */
u32 nBytesInM; /* # bytes in M */
};
extern const u32 Te0[256];
extern const u32 Te1[256];
extern const u32 Te2[256];
extern const u32 Te3[256];
extern const u32 Te4[256];
extern const u32 Td0[256];
extern const u32 Td1[256];
extern const u32 Td2[256];
extern const u32 Td3[256];
extern const u32 Td4[256];
extern const u32 rcon[10];
extern const u8 Td4s[256];
extern const u8 rcons[10];
#define RCON(i) (rcons[(i)] << 24)
static inline u32 rotr(u32 val, int bits)
{
return (val >> bits) | (val << (32 - bits));
}
#define TE0(i) Te0[((i) >> 24) & 0xff]
#define TE1(i) rotr(Te0[((i) >> 16) & 0xff], 8)
#define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
#define TE3(i) rotr(Te0[(i) & 0xff], 24)
#define TE41(i) ((Te0[((i) >> 24) & 0xff] << 8) & 0xff000000)
#define TE42(i) (Te0[((i) >> 16) & 0xff] & 0x00ff0000)
#define TE43(i) (Te0[((i) >> 8) & 0xff] & 0x0000ff00)
#define TE44(i) ((Te0[(i) & 0xff] >> 8) & 0x000000ff)
#define TE421(i) ((Te0[((i) >> 16) & 0xff] << 8) & 0xff000000)
#define TE432(i) (Te0[((i) >> 8) & 0xff] & 0x00ff0000)
#define TE443(i) (Te0[(i) & 0xff] & 0x0000ff00)
#define TE414(i) ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff)
#define TE4(i) ((Te0[(i)] >> 8) & 0x000000ff)
#define TD0(i) Td0[((i) >> 24) & 0xff]
#define TD1(i) rotr(Td0[((i) >> 16) & 0xff], 8)
#define TD2(i) rotr(Td0[((i) >> 8) & 0xff], 16)
#define TD3(i) rotr(Td0[(i) & 0xff], 24)
#define TD41(i) (Td4s[((i) >> 24) & 0xff] << 24)
#define TD42(i) (Td4s[((i) >> 16) & 0xff] << 16)
#define TD43(i) (Td4s[((i) >> 8) & 0xff] << 8)
#define TD44(i) (Td4s[(i) & 0xff])
#define TD0_(i) Td0[(i) & 0xff]
#define TD1_(i) rotr(Td0[(i) & 0xff], 8)
#define TD2_(i) rotr(Td0[(i) & 0xff], 16)
#define TD3_(i) rotr(Td0[(i) & 0xff], 24)
#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \
((u32)(pt)[2] << 8) ^ ((u32)(pt)[3]))
#define PUTU32(ct, st) { \
(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \
(ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
#define WPA_GET_BE32(a) ((((u32) (a)[0]) << 24) | (((u32) (a)[1]) << 16) | \
(((u32) (a)[2]) << 8) | ((u32) (a)[3]))
#define WPA_PUT_LE16(a, val) \
do { \
(a)[1] = ((u16) (val)) >> 8; \
(a)[0] = ((u16) (val)) & 0xff; \
} while (0)
#define WPA_PUT_BE32(a, val) \
do { \
(a)[0] = (u8) ((((u32) (val)) >> 24) & 0xff); \
(a)[1] = (u8) ((((u32) (val)) >> 16) & 0xff); \
(a)[2] = (u8) ((((u32) (val)) >> 8) & 0xff); \
(a)[3] = (u8) (((u32) (val)) & 0xff); \
} while (0)
#define WPA_PUT_BE64(a, val) \
do { \
(a)[0] = (u8) (((u64) (val)) >> 56); \
(a)[1] = (u8) (((u64) (val)) >> 48); \
(a)[2] = (u8) (((u64) (val)) >> 40); \
(a)[3] = (u8) (((u64) (val)) >> 32); \
(a)[4] = (u8) (((u64) (val)) >> 24); \
(a)[5] = (u8) (((u64) (val)) >> 16); \
(a)[6] = (u8) (((u64) (val)) >> 8); \
(a)[7] = (u8) (((u64) (val)) & 0xff); \
} while (0)
/* the K array */
static const unsigned long K[64] = {
0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, 0x3956c25bUL,
0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, 0xd807aa98UL, 0x12835b01UL,
0x243185beUL, 0x550c7dc3UL, 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL,
0xc19bf174UL, 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, 0x983e5152UL,
0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, 0xc6e00bf3UL, 0xd5a79147UL,
0x06ca6351UL, 0x14292967UL, 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL,
0x53380d13UL, 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, 0xd192e819UL,
0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, 0x19a4c116UL, 0x1e376c08UL,
0x2748774cUL, 0x34b0bcb5UL, 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL,
0x682e6ff3UL, 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
};
/* Various logical functions */
#define RORc(x, y) \
(((((unsigned long) (x) & 0xFFFFFFFFUL) >> (unsigned long) ((y) & 31)) | \
((unsigned long) (x) << (unsigned long) (32 - ((y) & 31)))) & 0xFFFFFFFFUL)
#define Ch(x, y, z) (z ^ (x & (y ^ z)))
#define Maj(x, y, z) (((x | y) & z) | (x & y))
#define S(x, n) RORc((x), (n))
#define R(x, n) (((x) & 0xFFFFFFFFUL)>>(n))
#define Sigma0(x) (S(x, 2) ^ S(x, 13) ^ S(x, 22))
#define Sigma1(x) (S(x, 6) ^ S(x, 11) ^ S(x, 25))
#define Gamma0(x) (S(x, 7) ^ S(x, 18) ^ R(x, 3))
#define Gamma1(x) (S(x, 17) ^ S(x, 19) ^ R(x, 10))
#ifndef MIN
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
#endif
#ifdef CONFIG_IEEE80211W
int omac1_aes_128(const u8 *key, const u8 *data, size_t data_len, u8 *mac);
#endif /* CONFIG_IEEE80211W */
#ifdef CONFIG_RTW_MESH_AEK
int aes_siv_encrypt(const u8 *key, const u8 *pw, size_t pwlen
, size_t num_elem, const u8 *addr[], const size_t *len, u8 *out);
int aes_siv_decrypt(const u8 *key, const u8 *iv_crypt, size_t iv_c_len
, size_t num_elem, const u8 *addr[], const size_t *len, u8 *out);
#endif
void rtw_secmicsetkey(struct mic_data *pmicdata, u8 *key);
void rtw_secmicappendbyte(struct mic_data *pmicdata, u8 b);
void rtw_secmicappend(struct mic_data *pmicdata, u8 *src, u32 nBytes);
void rtw_secgetmic(struct mic_data *pmicdata, u8 *dst);
void rtw_seccalctkipmic(
u8 *key,
u8 *header,
u8 *data,
u32 data_len,
u8 *Miccode,
u8 priority);
u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe);
u32 rtw_tkip_encrypt(_adapter *padapter, u8 *pxmitframe);
void rtw_wep_encrypt(_adapter *padapter, u8 *pxmitframe);
u32 rtw_aes_decrypt(_adapter *padapter, u8 *precvframe);
u32 rtw_tkip_decrypt(_adapter *padapter, u8 *precvframe);
void rtw_wep_decrypt(_adapter *padapter, u8 *precvframe);
#ifdef CONFIG_IEEE80211W
u32 rtw_BIP_verify(_adapter *padapter, u8 *whdr_pos, sint flen
, const u8 *key, u16 id, u64* ipn);
#endif
#ifdef CONFIG_TDLS
void wpa_tdls_generate_tpk(_adapter *padapter, PVOID sta);
int wpa_tdls_ftie_mic(u8 *kck, u8 trans_seq,
u8 *lnkid, u8 *rsnie, u8 *timeoutie, u8 *ftie,
u8 *mic);
int wpa_tdls_teardown_ftie_mic(u8 *kck, u8 *lnkid, u16 reason,
u8 dialog_token, u8 trans_seq, u8 *ftie, u8 *mic);
int tdls_verify_mic(u8 *kck, u8 trans_seq,
u8 *lnkid, u8 *rsnie, u8 *timeoutie, u8 *ftie);
#endif /* CONFIG_TDLS */
void rtw_sec_restore_wep_key(_adapter *adapter);
u8 rtw_handle_tkip_countermeasure(_adapter *adapter, const char *caller);
#ifdef CONFIG_WOWLAN
u16 rtw_calc_crc(u8 *pdata, int length);
#endif /*CONFIG_WOWLAN*/
#endif /* __RTL871X_SECURITY_H_ */