drivers/wireless: marvell/libertas: Convert timers to use timer_setup()
Subsystems (3)
PATCH 1/1 drivers/wireless: marvell/libertas: 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 Arvind Yadav <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Johannes Berg <[email protected]>
Cc "David S. Miller" <[email protected]>
Cc Andrew Zaborowski <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- drivers/net/wireless/marvell/libertas/if_usb.c | 6 +++--- drivers/net/wireless/marvell/libertas/main.c | 21 +++++++++------------ drivers/net/wireless/marvell/libertas_tf/if_usb.c | 6 +++--- drivers/net/wireless/marvell/libertas_tf/main.c | 7 +++---- 4 files changed, 18 insertions(+), 22 deletions(-)
drivers/net/wireless/marvell/libertas/if_usb.c +3 -3
@@ -161,9 +161,9 @@ static void if_usb_setup_firmware(struct lbs_private *priv) } } -static void if_usb_fw_timeo (unsigned long priv) +static void if_usb_fw_timeo (struct timer_list *t) { -struct if_usb_card *cardp = (void *)priv; +struct if_usb_card *cardp =from_timer (cardp, t, fw_timeout);if (cardp->fwdnldover) {lbs_deb_usb ("Download complete, no event. Assuming success\n" );
@@ -205,7 +205,7 @@ static int if_usb_probe(struct usb_interface *intf,if (!cardp) goto error; -setup_timer (&cardp->fw_timeout, if_usb_fw_timeo, (unsigned long )cardp); +timer_setup (&cardp->fw_timeout, if_usb_fw_timeo,0 );init_waitqueue_head (&cardp->fw_wq); cardp->udev = udev;
drivers/net/wireless/marvell/libertas/main.c +9 -12
@@ -722,9 +722,9 @@ EXPORT_SYMBOL_GPL(lbs_resume);* * @data: &struct lbs_private pointer */ -static void lbs_cmd_timeout_handler (unsigned long data) +static void lbs_cmd_timeout_handler (struct timer_list *t) { -struct lbs_private *priv = (struct lbs_private *)data; +struct lbs_private *priv =from_timer (priv, t, command_timer);unsigned long flags;spin_lock_irqsave (&priv->driver_lock, flags);
@@ -756,9 +756,9 @@ static void lbs_cmd_timeout_handler(unsigned long data)* * @data: &struct lbs_private pointer */ -static void lbs_tx_lockup_handler (unsigned long data) +static void lbs_tx_lockup_handler (struct timer_list *t) { -struct lbs_private *priv = (struct lbs_private *)data; +struct lbs_private *priv =from_timer (priv, t, tx_lockup_timer);unsigned long flags;spin_lock_irqsave (&priv->driver_lock, flags);
@@ -779,9 +779,9 @@ static void lbs_tx_lockup_handler(unsigned long data)* @data: &struct lbs_private pointer * returns: N/A */ -static void auto_deepsleep_timer_fn (unsigned long data) +static void auto_deepsleep_timer_fn (struct timer_list *t) { -struct lbs_private *priv = (struct lbs_private *)data; +struct lbs_private *priv =from_timer (priv, t, auto_deepsleep_timer);if (priv->is_activity_detected) { priv->is_activity_detected =0 ;
@@ -847,12 +847,9 @@ static int lbs_init_adapter(struct lbs_private *priv)init_waitqueue_head (&priv->fw_waitq);mutex_init (&priv->lock); -setup_timer (&priv->command_timer, lbs_cmd_timeout_handler, - (unsigned long )priv); -setup_timer (&priv->tx_lockup_timer, lbs_tx_lockup_handler, - (unsigned long )priv); -setup_timer (&priv->auto_deepsleep_timer, auto_deepsleep_timer_fn, - (unsigned long )priv); +timer_setup (&priv->command_timer, lbs_cmd_timeout_handler,0 ); +timer_setup (&priv->tx_lockup_timer, lbs_tx_lockup_handler,0 ); +timer_setup (&priv->auto_deepsleep_timer, auto_deepsleep_timer_fn,0 );INIT_LIST_HEAD (&priv->cmdfreeq);INIT_LIST_HEAD (&priv->cmdpendingq);
drivers/net/wireless/marvell/libertas_tf/if_usb.c +3 -3
@@ -115,9 +115,9 @@ static void if_usb_setup_firmware(struct lbtf_private *priv)lbtf_deb_leave (LBTF_DEB_USB ); } -static void if_usb_fw_timeo (unsigned long priv) +static void if_usb_fw_timeo (struct timer_list *t) { -struct if_usb_card *cardp = (void *)priv; +struct if_usb_card *cardp =from_timer (cardp, t, fw_timeout);lbtf_deb_enter (LBTF_DEB_USB );if (!cardp->fwdnldover) {
@@ -156,7 +156,7 @@ static int if_usb_probe(struct usb_interface *intf,if (!cardp) goto error; -setup_timer (&cardp->fw_timeout, if_usb_fw_timeo, (unsigned long )cardp); +timer_setup (&cardp->fw_timeout, if_usb_fw_timeo,0 );init_waitqueue_head (&cardp->fw_wq); cardp->udev = udev;
drivers/net/wireless/marvell/libertas_tf/main.c +3 -4
@@ -165,9 +165,9 @@ static int lbtf_setup_firmware(struct lbtf_private *priv)* This function handles the timeout of command sending. * It will re-send the same command again. */ -static void command_timer_fn (unsigned long data) +static void command_timer_fn (struct timer_list *t) { -struct lbtf_private *priv = (struct lbtf_private *)data; +struct lbtf_private *priv =from_timer (priv, t, command_timer);unsigned long flags;lbtf_deb_enter (LBTF_DEB_CMD );
@@ -196,8 +196,7 @@ static int lbtf_init_adapter(struct lbtf_private *priv)mutex_init (&priv->lock); priv->vif =NULL ; -setup_timer (&priv->command_timer, command_timer_fn, - (unsigned long )priv); +timer_setup (&priv->command_timer, command_timer_fn,0 );INIT_LIST_HEAD (&priv->cmdfreeq);INIT_LIST_HEAD (&priv->cmdpendingq);
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
Re: libertas: 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 10 lines
Cc Kalle Valo <[email protected]>Cc Arvind Yadav <[email protected]>Cc Ingo Molnar <[email protected]>Cc Johannes Berg <[email protected]>Cc "David S. Miller" <[email protected]>Cc Andrew Zaborowski <[email protected]>Signed-off-by Kees Cook <[email protected]>
Patch applied to wireless-drivers-next.git, thanks.
78ce6a9083c4 libertas: Convert timers to use timer_setup()
Signature · 3 lines
https://patchwork.kernel.org/patch/10023823/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches