diff --git a/debian/patches/Fix-build-for-linux-6.3.patch b/debian/patches/Fix-build-for-linux-6.3.patch new file mode 100644 index 0000000..09df6a7 --- /dev/null +++ b/debian/patches/Fix-build-for-linux-6.3.patch @@ -0,0 +1,135 @@ +From: Sophie Brun +Date: Wed, 5 Jul 2023 14:30:09 +0200 +Subject: Fix build for linux 6.3 + +Import from https://github.com/gglluukk/rtl8188eus +--- + core/rtw_br_ext.c | 6 ++++++ + hal/phydm/halrf/halrf.h | 2 +- + os_dep/linux/ioctl_cfg80211.c | 23 +++++++++++++++-------- + os_dep/linux/ioctl_linux.c | 2 +- + os_dep/linux/os_intfs.c | 4 ++-- + os_dep/osdep_service.c | 2 +- + 6 files changed, 26 insertions(+), 13 deletions(-) + +diff --git a/core/rtw_br_ext.c b/core/rtw_br_ext.c +index 532d6b3..1998500 100644 +--- a/core/rtw_br_ext.c ++++ b/core/rtw_br_ext.c +@@ -117,7 +117,13 @@ static __inline__ int __nat25_add_pppoe_tag(struct sk_buff *skb, struct pppoe_ta + /* have a room for new tag */ + memmove(((unsigned char *)ph->tag + data_len), (unsigned char *)ph->tag, ntohs(ph->length)); + 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); ++#if (defined __GNUC__) && (__GNUC__ > 10) ++ #pragma GCC diagnostic pop ++#endif + return data_len; + } + +diff --git a/hal/phydm/halrf/halrf.h b/hal/phydm/halrf/halrf.h +index 7240397..58c6ca2 100644 +--- a/hal/phydm/halrf/halrf.h ++++ b/hal/phydm/halrf/halrf.h +@@ -354,7 +354,7 @@ halrf_cmn_info_init( + void + halrf_cmn_info_hook( + void *dm_void, +- u32 cmn_info, ++ enum halrf_cmninfo_hook cmn_info, + void *value + ); + +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index b799e58..0486a22 100644 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -417,7 +417,9 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 + if (ret != _SUCCESS) + goto exit; + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) ++#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); +@@ -1104,6 +1106,7 @@ check_bss: + + #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; +@@ -1138,13 +1141,17 @@ check_bss: + RTW_INFO("pwdev->sme_state(b)=%d\n", pwdev->sme_state); + #endif + +- if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) != _TRUE) +- rtw_cfg80211_connect_result(pwdev, cur_network->network.MacAddress +- , pmlmepriv->assoc_req + 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_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6 +- , WLAN_STATUS_SUCCESS, GFP_ATOMIC); ++ if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) != _TRUE) { ++ 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_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2 ++ , pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6 ++ , pmlmepriv->assoc_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6 ++ , WLAN_STATUS_SUCCESS, GFP_ATOMIC, NL80211_TIMEOUT_UNSPECIFIED); ++ } + #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); + #endif +diff --git a/os_dep/linux/ioctl_linux.c b/os_dep/linux/ioctl_linux.c +index 35421a7..fbc162f 100644 +--- a/os_dep/linux/ioctl_linux.c ++++ b/os_dep/linux/ioctl_linux.c +@@ -9789,7 +9789,7 @@ static int rtw_mp_efuse_set(struct net_device *dev, + rtw_hal_read_chip_info(padapter); + /* set mac addr*/ + 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 + rtw_init_wifidirect_addrs(padapter, adapter_mac_addr(padapter), adapter_mac_addr(padapter)); +diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c +index 1d28862..abc2eb2 100644 +--- a/os_dep/linux/os_intfs.c ++++ b/os_dep/linux/os_intfs.c +@@ -1619,9 +1619,9 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name) + + #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); ++ 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 */ + +diff --git a/os_dep/osdep_service.c b/os_dep/osdep_service.c +index 5480971..52856b1 100644 +--- a/os_dep/osdep_service.c ++++ b/os_dep/osdep_service.c +@@ -2451,7 +2451,7 @@ int rtw_change_ifname(_adapter *padapter, const char *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) + ret = register_netdev(pnetdev); diff --git a/debian/patches/series b/debian/patches/series index 8ad5957..a9d5b82 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ add-support-kernel-5.17.patch add-linux-6.1-support.patch +Fix-build-for-linux-6.3.patch