63 lines
2.8 KiB
Diff
63 lines
2.8 KiB
Diff
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
|
|
index c26bb07..d2d50c9 100644
|
|
--- a/os_dep/linux/ioctl_cfg80211.c
|
|
+++ b/os_dep/linux/ioctl_cfg80211.c
|
|
@@ -4600,24 +4600,36 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
|
|
return ret;
|
|
}
|
|
|
|
-static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info)
|
|
+static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev,
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
|
|
+ struct cfg80211_ap_update *info
|
|
+#else
|
|
+ struct cfg80211_beacon_data *info
|
|
+#endif
|
|
+)
|
|
{
|
|
int ret = 0;
|
|
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0))
|
|
+ struct cfg80211_beacon_data *beacon_info = &info->beacon;
|
|
+#else
|
|
+ struct cfg80211_beacon_data *beacon_info = info;
|
|
+#endif
|
|
|
|
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
|
|
|
|
- ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
|
|
+ ret = rtw_add_beacon(adapter, beacon_info->head, beacon_info->head_len,
|
|
+ beacon_info->tail, beacon_info->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->proberesp_ies && info->proberesp_ies_len > 0) {
|
|
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies,
|
|
- info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
|
+ if(beacon_info->proberesp_ies && beacon_info->proberesp_ies_len > 0) {
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->proberesp_ies,
|
|
+ beacon_info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
|
}
|
|
- if(info->assocresp_ies && info->assocresp_ies_len > 0) {
|
|
- rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies,
|
|
- info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
|
+ if(beacon_info->assocresp_ies && beacon_info->assocresp_ies_len > 0) {
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)beacon_info->assocresp_ies,
|
|
+ beacon_info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
|
}
|
|
}
|
|
|
|
diff --git a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
|
|
index 95dc47f..5a12ae6 100644
|
|
--- a/os_dep/linux/usb_intf.c
|
|
+++ b/os_dep/linux/usb_intf.c
|
|
@@ -329,7 +329,7 @@ struct rtw_usb_drv usb_drv = {
|
|
.usbdrv.supports_autosuspend = 1,
|
|
#endif
|
|
|
|
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19))
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
|
|
.usbdrv.drvwrap.driver.shutdown = rtw_dev_shutdown,
|
|
#else
|
|
.usbdrv.driver.shutdown = rtw_dev_shutdown,
|