From 8e82f2058a2b1fa95e8700c556035bb686d94071 Mon Sep 17 00:00:00 2001 From: Sophie Brun Date: Thu, 6 Oct 2022 14:22:13 +0200 Subject: [PATCH] New upstream version 5.3.9~git20220829.4ba8e08 --- include/ieee80211.h | 19 +++++++++++++++++++ os_dep/linux/os_intfs.c | 8 ++++++++ os_dep/linux/rtw_proc.c | 4 ++++ os_dep/osdep_service.c | 4 ++++ 4 files changed, 35 insertions(+) diff --git a/include/ieee80211.h b/include/ieee80211.h index 5ba92b5..89d2eff 100644 --- a/include/ieee80211.h +++ b/include/ieee80211.h @@ -1529,6 +1529,7 @@ enum ieee80211_state { (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ (((Addr[5]) & 0xff) == 0xff)) #else +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 00)) extern __inline int is_multicast_mac_addr(const u8 *addr) { return (addr[0] != 0xff) && (0x01 & addr[0]); @@ -1545,6 +1546,24 @@ extern __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)); } +#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 */ #define CFG_IEEE80211_RESERVE_FCS (1<<0) diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c index bd7da8b..f006fc8 100644 --- a/os_dep/linux/os_intfs.c +++ b/os_dep/linux/os_intfs.c @@ -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 */ +#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 */ +#endif #if 0 if (rtw_is_hw_init_completed(padapter)) { @@ -1628,7 +1632,11 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name) /* alloc netdev 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); +#endif #if defined(CONFIG_NET_NS) dev_net_set(ndev, wiphy_net(adapter_to_wiphy(adapter))); #endif //defined(CONFIG_NET_NS) diff --git a/os_dep/linux/rtw_proc.c b/os_dep/linux/rtw_proc.c index 8a0fd3e..8b1a424 100644 --- a/os_dep/linux/rtw_proc.c +++ b/os_dep/linux/rtw_proc.c @@ -45,6 +45,10 @@ inline struct proc_dir_entry *get_rtw_drv_proc(void) #define get_proc_net init_net.proc_net #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) { struct proc_dir_entry *entry; diff --git a/os_dep/osdep_service.c b/os_dep/osdep_service.c index 81b951d..7367bca 100644 --- a/os_dep/osdep_service.c +++ b/os_dep/osdep_service.c @@ -1268,8 +1268,12 @@ u32 _rtw_down_sema(_sema *sema) inline void thread_exit(_completion *comp) { #ifdef PLATFORM_LINUX +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) + kthread_complete_and_exit(comp, 0); +#else complete_and_exit(comp, 0); #endif +#endif #ifdef PLATFORM_FREEBSD printf("%s", "RTKTHREAD_exit");