From 7f03df38a1f20c7107102fb9134762fc5e8fa14d Mon Sep 17 00:00:00 2001 From: Ricardo Pardini Date: Fri, 23 May 2025 09:30:35 +0200 Subject: [PATCH 1/2] uwe5622: fix build for 6.15 (timer api changes) --- .../wireless/uwe5622/unisocwifi/cfg80211.c | 8 ++++++++ drivers/net/wireless/uwe5622/unisocwifi/qos.c | 8 ++++++++ .../net/wireless/uwe5622/unisocwifi/reorder.c | 20 +++++++++++++++++++ .../net/wireless/uwe5622/unisocwifi/tcp_ack.c | 16 +++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c index 965db9b8cefd0..35e1317f13707 100755 --- a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c +++ b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c @@ -1247,7 +1247,11 @@ void sprdwl_cancel_scan(struct sprdwl_vif *vif) if (priv->scan_vif && priv->scan_vif == vif) { if (timer_pending(&priv->scan_timer)) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&priv->scan_timer); + #else del_timer_sync(&priv->scan_timer); + #endif spin_lock_bh(&priv->scan_lock); @@ -1307,7 +1311,11 @@ void sprdwl_scan_done(struct sprdwl_vif *vif, bool abort) if (priv->scan_vif && priv->scan_vif == vif) { if (timer_pending(&priv->scan_timer)) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&priv->scan_timer); + #else del_timer_sync(&priv->scan_timer); + #endif spin_lock_bh(&priv->scan_lock); if (priv->scan_request) { diff --git a/drivers/net/wireless/uwe5622/unisocwifi/qos.c b/drivers/net/wireless/uwe5622/unisocwifi/qos.c index 7abcc0a02ee34..4dc12e5776481 100755 --- a/drivers/net/wireless/uwe5622/unisocwifi/qos.c +++ b/drivers/net/wireless/uwe5622/unisocwifi/qos.c @@ -568,7 +568,11 @@ void reset_wmmac_parameters(struct sprdwl_priv *priv) g_wmmac_admittedtime[ac] = 0; } if (timer_pending(&priv->wmmac.wmmac_edcaf_timer)) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&priv->wmmac.wmmac_edcaf_timer); + #else del_timer_sync(&priv->wmmac.wmmac_edcaf_timer); + #endif memset(&priv->wmmac.ac[0], 0, 4*sizeof(struct wmm_ac_params)); } @@ -691,7 +695,11 @@ void update_admitted_time(struct sprdwl_priv *priv, u8 tsid, u16 medium_time, bo else { g_wmmac_admittedtime[ac] = 0; if (timer_pending(&priv->wmmac.wmmac_edcaf_timer)) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&priv->wmmac.wmmac_edcaf_timer); + #else del_timer_sync(&priv->wmmac.wmmac_edcaf_timer); + #endif } } diff --git a/drivers/net/wireless/uwe5622/unisocwifi/reorder.c b/drivers/net/wireless/uwe5622/unisocwifi/reorder.c index c6c77648dddef..98e74d0450bba 100644 --- a/drivers/net/wireless/uwe5622/unisocwifi/reorder.c +++ b/drivers/net/wireless/uwe5622/unisocwifi/reorder.c @@ -108,7 +108,11 @@ static inline void mod_reorder_timer(struct rx_ba_node *ba_node) mod_timer(&ba_node->reorder_timer, jiffies + RX_BA_LOSS_RECOVERY_TIMEOUT); } else { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ba_node->reorder_timer); + #else del_timer(&ba_node->reorder_timer); + #endif ba_node->timeout_cnt = 0; } } @@ -436,7 +440,11 @@ static void reorder_msdu_process(struct sprdwl_rx_ba_entry *ba_entry, } } else if (unlikely(!ba_node_desc->buff_cnt)) { /* Should never happen */ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ba_node->reorder_timer); + #else del_timer(&ba_node->reorder_timer); + #endif ba_node->timeout_cnt = 0; } } else { @@ -645,7 +653,11 @@ static void wlan_delba_event(struct sprdwl_rx_ba_entry *ba_entry, return; } + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&ba_node->reorder_timer); + #else del_timer_sync(&ba_node->reorder_timer); + #endif spin_lock_bh(&ba_node->ba_node_lock); if (ba_node->active) { ba_node_desc = ba_node->rx_ba; @@ -876,7 +888,11 @@ void sprdwl_reorder_deinit(struct sprdwl_rx_ba_entry *ba_entry) continue; hlist_for_each_entry_safe(ba_node, node, head, hlist) { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&ba_node->reorder_timer); + #else del_timer_sync(&ba_node->reorder_timer); + #endif spin_lock_bh(&ba_node->ba_node_lock); ba_node->active = 0; flush_reorder_buffer(ba_node->rx_ba); @@ -983,7 +999,11 @@ void peer_entry_delba(void *hw_intf, unsigned char lut_index) if (ba_node) { wl_info("%s: del ba lut_index: %d, tid %d\n", __func__, lut_index, tid); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete_sync(&ba_node->reorder_timer); + #else del_timer_sync(&ba_node->reorder_timer); + #endif spin_lock_bh(&ba_node->ba_node_lock); if (ba_node->active) { ba_node_desc = ba_node->rx_ba; diff --git a/drivers/net/wireless/uwe5622/unisocwifi/tcp_ack.c b/drivers/net/wireless/uwe5622/unisocwifi/tcp_ack.c index 4db766fbac3b4..4abfa9d04e1b9 100644 --- a/drivers/net/wireless/uwe5622/unisocwifi/tcp_ack.c +++ b/drivers/net/wireless/uwe5622/unisocwifi/tcp_ack.c @@ -84,7 +84,11 @@ void sprdwl_tcp_ack_deinit(struct sprdwl_priv *priv) drop_msg = NULL; write_seqlock_bh(&ack_m->ack_info[i].seqlock); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ack_m->ack_info[i].timer); + #else del_timer(&ack_m->ack_info[i].timer); + #endif drop_msg = ack_m->ack_info[i].msgbuf; ack_m->ack_info[i].msgbuf = NULL; write_sequnlock_bh(&ack_m->ack_info[i].seqlock); @@ -342,7 +346,11 @@ int sprdwl_tcp_ack_handle(struct sprdwl_msg_buf *new_msgbuf, if (ack_info->msgbuf) { drop_msg = ack_info->msgbuf; ack_info->msgbuf = NULL; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ack_info->timer); + #else del_timer(&ack_info->timer); + #endif } ack_info->in_send_msg = NULL; @@ -374,7 +382,11 @@ int sprdwl_tcp_ack_handle(struct sprdwl_msg_buf *new_msgbuf, atomic_read(&ack_m->max_drop_cnt)))) { ack_info->drop_cnt = 0; ack_info->in_send_msg = new_msgbuf; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ack_info->timer); + #else del_timer(&ack_info->timer); + #endif } else { ret = 1; ack_info->msgbuf = new_msgbuf; @@ -537,7 +549,11 @@ void enable_tcp_ack_delay(char *buf, unsigned char offset) write_seqlock_bh(&ack_m->ack_info[i].seqlock); drop_msg = ack_m->ack_info[i].msgbuf; ack_m->ack_info[i].msgbuf = NULL; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0) + timer_delete(&ack_m->ack_info[i].timer); + #else del_timer(&ack_m->ack_info[i].timer); + #endif write_sequnlock_bh(&ack_m->ack_info[i].seqlock); if (drop_msg) -- 2.49.0