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,