From 73b8cf01586ba2aca319402390d260a7e2ef712d Mon Sep 17 00:00:00 2001 From: Gunjan Gupta Date: Sat, 23 Dec 2023 06:57:09 +0000 Subject: [PATCH 1/4] wireless: rtl8812au: fix compilation with 6.7 kernel --- .../rtl8812au/os_dep/linux/ioctl_cfg80211.c | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/wireless/rtl8812au/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/rtl8812au/os_dep/linux/ioctl_cfg80211.c index 3475cfb0b4f5..4eaeff171e48 100644 --- a/drivers/net/wireless/rtl8812au/os_dep/linux/ioctl_cfg80211.c +++ b/drivers/net/wireless/rtl8812au/os_dep/linux/ioctl_cfg80211.c @@ -5227,6 +5227,32 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev, return ret; } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0)) +static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_ap_update *info) +{ + int ret = 0; + _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); + + RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); + + ret = rtw_add_beacon(adapter, info->beacon.head, info->beacon.head_len, info->beacon.tail, info->beacon.tail_len); + + // In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set + if(ret == 0) { + if(info->beacon.proberesp_ies && info->beacon.proberesp_ies_len > 0) { + rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.proberesp_ies, + info->beacon.proberesp_ies_len, 0x2/*PROBE_RESP*/); + } + if(info->beacon.assocresp_ies && info->beacon.assocresp_ies_len > 0) { + rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->beacon.assocresp_ies, + info->beacon.assocresp_ies_len, 0x4/*ASSOC_RESP*/); + } + } + + return ret; +} +#else static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info) { @@ -5251,6 +5277,7 @@ static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *nd return ret; } +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev, unsigned int link_id) -- 2.34.1