drivers/wireless: rtlwifi: Convert timers to use timer_setup()
PATCH 1/1 drivers/wireless: rtlwifi: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly.
Cc Kalle Valo <[email protected]>
Cc Larry Finger <[email protected]>
Cc Chaoming Li <[email protected]>
Cc Ping-Ke Shih <[email protected]>
Cc Arvind Yadav <[email protected]>
Cc Souptick Joarder <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- drivers/net/wireless/realtek/rtlwifi/base.c | 20 ++++++++++---------- drivers/net/wireless/realtek/rtlwifi/base.h | 4 ++-- drivers/net/wireless/realtek/rtlwifi/core.c | 2 +- drivers/net/wireless/realtek/rtlwifi/ps.c | 2 +- drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c | 6 ++++-- drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.h | 2 +- drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 7 +++++-- drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.h | 2 +- drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c | 12 ++++-------- 9 files changed, 29 insertions(+), 28 deletions(-)
drivers/net/wireless/realtek/rtlwifi/base.c +10 -10
@@ -461,10 +461,10 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw)struct rtl_priv *rtlpriv =rtl_priv (hw);/* <1> timer */ -setup_timer (&rtlpriv->works.watchdog_timer, - rtl_watch_dog_timer_callback, (unsigned long )hw); -setup_timer (&rtlpriv->works.dualmac_easyconcurrent_retrytimer, - rtl_easy_concurrent_retrytimer_callback, (unsigned long )hw); +timer_setup (&rtlpriv->works.watchdog_timer, + rtl_watch_dog_timer_callback,0 ); +timer_setup (&rtlpriv->works.dualmac_easyconcurrent_retrytimer, + rtl_easy_concurrent_retrytimer_callback,0 );/* <2> work queue */ rtlpriv->works.hw = hw; rtlpriv->works.rtl_wq =alloc_workqueue ("%s" ,0 ,0 , rtlpriv->cfg->name);
@@ -1975,10 +1975,9 @@ void rtl_watchdog_wq_callback(void *data)rtl_scan_list_expire (hw); } -void rtl_watch_dog_timer_callback (unsigned long data) +void rtl_watch_dog_timer_callback (struct timer_list *t) { -struct ieee80211_hw *hw = (struct ieee80211_hw *)data; -struct rtl_priv *rtlpriv =rtl_priv (hw); +struct rtl_priv *rtlpriv =from_timer (rtlpriv, t, works.watchdog_timer);queue_delayed_work (rtlpriv->works.rtl_wq, &rtlpriv->works.watchdog_wq,0 );
@@ -2084,10 +2083,11 @@ void rtl_c2hcmd_wq_callback(void *data)rtl_c2hcmd_launcher (hw,1 ); } -void rtl_easy_concurrent_retrytimer_callback (unsigned long data) +void rtl_easy_concurrent_retrytimer_callback (struct timer_list *t) { -struct ieee80211_hw *hw = (struct ieee80211_hw *)data; -struct rtl_priv *rtlpriv =rtl_priv (hw); +struct rtl_priv *rtlpriv = +from_timer (rtlpriv, t, works.dualmac_easyconcurrent_retrytimer); +struct ieee80211_hw *hw = rtlpriv->hw;struct rtl_priv *buddy_priv = rtlpriv->buddy_priv;if (buddy_priv ==NULL )
drivers/net/wireless/realtek/rtlwifi/base.h +2 -2
@@ -120,7 +120,7 @@ void rtl_init_rx_config(struct ieee80211_hw *hw);void rtl_init_rfkill (struct ieee80211_hw *hw);void rtl_deinit_rfkill (struct ieee80211_hw *hw); -void rtl_watch_dog_timer_callback (unsigned long data); +void rtl_watch_dog_timer_callback (struct timer_list *t);void rtl_deinit_deferred_work (struct ieee80211_hw *hw);bool rtl_action_proc (struct ieee80211_hw *hw,struct sk_buff *skb,u8 is_tx);
@@ -169,7 +169,7 @@ int rtl_send_smps_action(struct ieee80211_hw *hw,u8 *rtl_find_ie (u8 *data,unsigned int len,u8 ie);void rtl_recognize_peer (struct ieee80211_hw *hw,u8 *data,unsigned int len);u8 rtl_tid_to_ac (u8 tid); -void rtl_easy_concurrent_retrytimer_callback (unsigned long data); +void rtl_easy_concurrent_retrytimer_callback (struct timer_list *t);extern struct rtl_global_var rtl_global_var;void rtl_phy_scan_operation_backup (struct ieee80211_hw *hw,u8 operation);
drivers/net/wireless/realtek/rtlwifi/core.c +1 -1
@@ -160,7 +160,7 @@ static int rtl_op_start(struct ieee80211_hw *hw)mutex_lock (&rtlpriv->locks.conf_mutex); err = rtlpriv->intf_ops->adapter_start (hw);if (!err) -rtl_watch_dog_timer_callback ((unsigned long )hw); +rtl_watch_dog_timer_callback (&rtlpriv->works.watchdog_timer);mutex_unlock (&rtlpriv->locks.conf_mutex);return err; }
drivers/net/wireless/realtek/rtlwifi/ps.c +1 -1
@@ -55,7 +55,7 @@ bool rtl_ps_enable_nic(struct ieee80211_hw *hw) rtlpriv->cfg->ops->enable_interrupt (hw);/*<enable timer> */ -rtl_watch_dog_timer_callback ((unsigned long )hw); +rtl_watch_dog_timer_callback (&rtlpriv->works.watchdog_timer);return true; }
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c +4 -2
@@ -1707,9 +1707,11 @@ static void rtl88e_dm_fast_ant_training(struct ieee80211_hw *hw) } } -void rtl88e_dm_fast_antenna_training_callback (unsigned long data) +void rtl88e_dm_fast_antenna_training_callback (struct timer_list *t) { -struct ieee80211_hw *hw = (struct ieee80211_hw *)data; +struct rtl_priv *rtlpriv = +from_timer (rtlpriv, t, works.fast_antenna_training_timer); +struct ieee80211_hw *hw = rtlpriv->hw;rtl88e_dm_fast_ant_training (hw); }
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.h +1 -1
@@ -270,7 +270,7 @@ void rtl88e_dm_set_tx_ant_by_tx_info(struct ieee80211_hw *hw,void rtl88e_dm_ant_sel_statistics (struct ieee80211_hw *hw,u8 antsel_tr_mux,u32 mac_id,u32 rx_pwdb_all); -void rtl88e_dm_fast_antenna_training_callback (unsigned long data); +void rtl88e_dm_fast_antenna_training_callback (struct timer_list *t);void rtl88e_dm_init (struct ieee80211_hw *hw);void rtl88e_dm_watchdog (struct ieee80211_hw *hw);void rtl88e_dm_write_dig (struct ieee80211_hw *hw);
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c +5 -2
@@ -252,9 +252,12 @@ static void _rtl88ee_set_fw_ps_rf_off_low_power(struct ieee80211_hw *hw) rpwm_val |=FW_PS_STATE_RF_OFF_LOW_PWR_88E ;_rtl88ee_set_fw_clock_off (hw, rpwm_val); } -void rtl88ee_fw_clk_off_timer_callback (unsigned long data) + +void rtl88ee_fw_clk_off_timer_callback (struct timer_list *t) { -struct ieee80211_hw *hw = (struct ieee80211_hw *)data; +struct rtl_priv *rtlpriv =from_timer (rtlpriv, t, + works.fw_clockoff_timer); +struct ieee80211_hw *hw = rtlpriv->hw;_rtl88ee_set_fw_ps_rf_off_low_power (hw); }
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.h +1 -1
@@ -57,6 +57,6 @@ void rtl8188ee_bt_reg_init(struct ieee80211_hw *hw);void rtl8188ee_bt_hw_init (struct ieee80211_hw *hw);void rtl88ee_suspend (struct ieee80211_hw *hw);void rtl88ee_resume (struct ieee80211_hw *hw); -void rtl88ee_fw_clk_off_timer_callback (unsigned long data); +void rtl88ee_fw_clk_off_timer_callback (struct timer_list *t);#endif
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c +4 -8
@@ -189,16 +189,12 @@ int rtl88e_init_sw_vars(struct ieee80211_hw *hw)/*low power */ rtlpriv->psc.low_power_enable = false;if (rtlpriv->psc.low_power_enable) { -init_timer (&rtlpriv->works.fw_clockoff_timer); -setup_timer (&rtlpriv->works.fw_clockoff_timer, - rtl88ee_fw_clk_off_timer_callback, - (unsigned long )hw); +timer_setup (&rtlpriv->works.fw_clockoff_timer, + rtl88ee_fw_clk_off_timer_callback,0 ); } -init_timer (&rtlpriv->works.fast_antenna_training_timer); -setup_timer (&rtlpriv->works.fast_antenna_training_timer, - rtl88e_dm_fast_antenna_training_callback, - (unsigned long )hw); +timer_setup (&rtlpriv->works.fast_antenna_training_timer, + rtl88e_dm_fast_antenna_training_callback,0 );return err; }
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
Re: rtlwifi: Convert timers to use timer_setup()
Quoted 4 lines · Kees Cook
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.
Quoted 9 lines
Cc Kalle Valo <[email protected]>Cc Larry Finger <[email protected]>Cc Chaoming Li <[email protected]>Cc Ping-Ke Shih <[email protected]>Cc Arvind Yadav <[email protected]>Cc Souptick Joarder <[email protected]>Signed-off-by Kees Cook <[email protected]>
Patch applied to wireless-drivers-next.git, thanks.
7c51d17c027e rtlwifi: Convert timers to use timer_setup()
Signature · 3 lines
https://patchwork.kernel.org/patch/10023861/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches