@@ -16667,7 +16667,11 @@ wl_stop_wait_next_action_frame(struct bcm_cfg80211 *cfg, struct net_device *ndev
1666716667 s32 err = 0;
1666816668
1666916669 if (wl_get_drv_status_all(cfg, FINDING_COMMON_CHANNEL)) {
16670+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
16671+ timer_delete_sync(&cfg->p2p->listen_timer);
16672+ #else
1667016673 del_timer_sync(&cfg->p2p->listen_timer);
16674+ #endif
1667116675 if (cfg->afx_hdl != NULL) {
1667216676 if (cfg->afx_hdl->dev != NULL) {
1667316677 wl_clr_drv_status(cfg, SCANNING, cfg->afx_hdl->dev);
@@ -17697,7 +17701,11 @@ static void wl_del_roam_timeout(struct bcm_cfg80211 *cfg)
1769717701
1769817702 /* restore prec_map to ALLPRIO */
1769917703 dhdp->dequeue_prec_map = ALLPRIO;
17704+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
17705+ timer_delete_sync(&cfg->roam_timeout);
17706+ #else
1770017707 del_timer_sync(&cfg->roam_timeout);
17708+ #endif
1770117709#if defined(BCMDONGLEHOST) && defined(OEM_ANDROID)
1770217710 DHD_ENABLE_RUNTIME_PM(dhdp);
1770317711#endif /* BCMDONGLEHOST && OEM_ANDROID */
@@ -18362,10 +18370,17 @@ static void wl_deinit_priv(struct bcm_cfg80211 *cfg)
1836218370#ifdef WL_SCHED_SCAN
1836318371 cancel_delayed_work_sync(&cfg->sched_scan_stop_work);
1836418372#endif /* WL_SCHED_SCAN */
18373+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
18374+ timer_delete_sync(&cfg->scan_timeout);
18375+ #ifdef DHD_LOSSLESS_ROAMING
18376+ timer_delete_sync(&cfg->roam_timeout);
18377+ #endif
18378+ #else
1836518379 del_timer_sync(&cfg->scan_timeout);
1836618380#ifdef DHD_LOSSLESS_ROAMING
1836718381 del_timer_sync(&cfg->roam_timeout);
1836818382#endif
18383+ #endif
1836918384#ifdef WL_CELLULAR_CHAN_AVOID
1837018385 wl_cellavoid_deinit(cfg);
1837118386#endif /* WL_CELLULAR_CHAN_AVOID */
@@ -18695,11 +18710,17 @@ void wl_cfg80211_detach(struct bcm_cfg80211 *cfg)
1869518710#ifdef WL_WPS_SYNC
1869618711 wl_deinit_wps_reauth_sm(cfg);
1869718712#endif /* WL_WPS_SYNC */
18698-
18713+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
18714+ timer_delete_sync(&cfg->scan_timeout);
18715+ #ifdef DHD_LOSSLESS_ROAMING
18716+ timer_delete_sync(&cfg->roam_timeout);
18717+ #endif /* DHD_LOSSLESS_ROAMING */
18718+ #else
1869918719 del_timer_sync(&cfg->scan_timeout);
1870018720#ifdef DHD_LOSSLESS_ROAMING
1870118721 del_timer_sync(&cfg->roam_timeout);
1870218722#endif /* DHD_LOSSLESS_ROAMING */
18723+ #endif
1870318724
1870418725#ifdef WL_STATIC_IF
1870518726 wl_cfg80211_unregister_static_if(cfg);
@@ -20757,7 +20778,11 @@ static s32 __wl_cfg80211_up(struct bcm_cfg80211 *cfg)
2075720778#endif /* WL_RAV_MSCS_NEG_IN_ASSOC */
2075820779
2075920780#ifdef DHD_LOSSLESS_ROAMING
20781+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
20782+ timer_delete_sync(&cfg->roam_timeout);
20783+ #else
2076020784 del_timer_sync(&cfg->roam_timeout);
20785+ #endif
2076120786#endif /* DHD_LOSSLESS_ROAMING */
2076220787
2076320788 err = dhd_monitor_init(cfg->pub);
@@ -21014,7 +21039,11 @@ static s32 __wl_cfg80211_down(struct bcm_cfg80211 *cfg)
2101421039 /* Force clear of scan_suppress */
2101521040 if (cfg->scan_suppressed)
2101621041 wl_cfg80211_scan_suppress(ndev, 0);
21042+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
21043+ timer_delete_sync(&cfg->scan_supp_timer);
21044+ #else
2101721045 del_timer_sync(&cfg->scan_supp_timer);
21046+ #endif
2101821047 cancel_work_sync(&cfg->wlan_work);
2101921048#endif /* DHCP_SCAN_SUPPRESS */
2102021049
@@ -21164,14 +21193,22 @@ static s32 __wl_cfg80211_down(struct bcm_cfg80211 *cfg)
2116421193 wl_link_down(cfg);
2116521194 if (cfg->p2p_supported) {
2116621195 if (timer_pending(&cfg->p2p->listen_timer))
21196+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
21197+ timer_delete_sync(&cfg->p2p->listen_timer);
21198+ #else
2116721199 del_timer_sync(&cfg->p2p->listen_timer);
21200+ #endif
2116821201 wl_cfgp2p_down(cfg);
2116921202 } else {
2117021203 // avoid memory leak
2117121204 wl_cfgp2p_deinit_priv(cfg);
2117221205 }
2117321206
21207+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
21208+ timer_delete_sync(&cfg->scan_timeout);
21209+ #else
2117421210 del_timer_sync(&cfg->scan_timeout);
21211+ #endif
2117521212
2117621213 wl_cfg80211_clear_mgmt_vndr_ies(cfg);
2117721214
@@ -24642,7 +24679,11 @@ static void wl_deinit_wps_reauth_sm(struct bcm_cfg80211 *cfg)
2464224679 for (i = 0; i < WPS_MAX_SESSIONS; i++) {
2464324680 cfg->wps_session[i].in_use = false;
2464424681 cfg->wps_session[i].state = WPS_STATE_IDLE;
24682+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
24683+ timer_delete_sync(&cfg->wps_session[i].timer);
24684+ #else
2464524685 del_timer_sync(&cfg->wps_session[i].timer);
24686+ #endif
2464624687 }
2464724688
2464824689}
@@ -24734,7 +24775,11 @@ wl_wps_session_del(struct net_device *ndev)
2473424775 WL_CFG_WPS_SYNC_UNLOCK(&cfg->wps_sync, flags);
2473524776
2473624777 /* Ensure this API is called from sleepable context. */
24778+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
24779+ timer_delete_sync(&cfg->wps_session[inst].timer);
24780+ #else
2473724781 del_timer_sync(&cfg->wps_session[inst].timer);
24782+ #endif
2473824783
2473924784 WL_INFORM_MEM(("[%s][WPS] session deleted\n", ndev->name));
2474024785}
0 commit comments