diff options
author | Kees Cook <keescook@chromium.org> | 2017-10-25 06:51:14 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-26 23:09:15 -0400 |
commit | 550acfb37ffeee9ff00f7f13f087ad1c33a74b29 (patch) | |
tree | e129c181d9dd28ffe0df8ef3722429129bb962b5 | |
parent | 0ff624fbfefbb96db62d100bda84e4fbdabaf628 (diff) |
drivers/net: can: 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: Wolfgang Grandegger <wg@grandegger.com>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Allen Pais <allen.lkml@gmail.com>
Cc: linux-can@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/can/grcan.c | 19 | ||||
-rw-r--r-- | drivers/net/can/sja1000/peak_pcmcia.c | 6 | ||||
-rw-r--r-- | drivers/net/can/usb/peak_usb/pcan_usb.c | 10 |
3 files changed, 17 insertions, 18 deletions
diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 8570cfdaea75..897c6b113d3f 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c | |||
@@ -807,10 +807,10 @@ static irqreturn_t grcan_interrupt(int irq, void *dev_id) | |||
807 | * is not ONGOING (TX might be stuck in ONGOING due to a harwrware bug | 807 | * is not ONGOING (TX might be stuck in ONGOING due to a harwrware bug |
808 | * for single shot) | 808 | * for single shot) |
809 | */ | 809 | */ |
810 | static void grcan_running_reset(unsigned long data) | 810 | static void grcan_running_reset(struct timer_list *t) |
811 | { | 811 | { |
812 | struct net_device *dev = (struct net_device *)data; | 812 | struct grcan_priv *priv = from_timer(priv, t, rr_timer); |
813 | struct grcan_priv *priv = netdev_priv(dev); | 813 | struct net_device *dev = priv->dev; |
814 | struct grcan_registers __iomem *regs = priv->regs; | 814 | struct grcan_registers __iomem *regs = priv->regs; |
815 | unsigned long flags; | 815 | unsigned long flags; |
816 | 816 | ||
@@ -898,10 +898,10 @@ static inline void grcan_reset_timer(struct timer_list *timer, __u32 bitrate) | |||
898 | } | 898 | } |
899 | 899 | ||
900 | /* Disable channels and schedule a running reset */ | 900 | /* Disable channels and schedule a running reset */ |
901 | static void grcan_initiate_running_reset(unsigned long data) | 901 | static void grcan_initiate_running_reset(struct timer_list *t) |
902 | { | 902 | { |
903 | struct net_device *dev = (struct net_device *)data; | 903 | struct grcan_priv *priv = from_timer(priv, t, hang_timer); |
904 | struct grcan_priv *priv = netdev_priv(dev); | 904 | struct net_device *dev = priv->dev; |
905 | struct grcan_registers __iomem *regs = priv->regs; | 905 | struct grcan_registers __iomem *regs = priv->regs; |
906 | unsigned long flags; | 906 | unsigned long flags; |
907 | 907 | ||
@@ -1626,11 +1626,8 @@ static int grcan_setup_netdev(struct platform_device *ofdev, | |||
1626 | spin_lock_init(&priv->lock); | 1626 | spin_lock_init(&priv->lock); |
1627 | 1627 | ||
1628 | if (priv->need_txbug_workaround) { | 1628 | if (priv->need_txbug_workaround) { |
1629 | setup_timer(&priv->rr_timer, grcan_running_reset, | 1629 | timer_setup(&priv->rr_timer, grcan_running_reset, 0); |
1630 | (unsigned long)dev); | 1630 | timer_setup(&priv->hang_timer, grcan_initiate_running_reset, 0); |
1631 | |||
1632 | setup_timer(&priv->hang_timer, grcan_initiate_running_reset, | ||
1633 | (unsigned long)dev); | ||
1634 | } | 1631 | } |
1635 | 1632 | ||
1636 | netif_napi_add(dev, &priv->napi, grcan_poll, GRCAN_NAPI_WEIGHT); | 1633 | netif_napi_add(dev, &priv->napi, grcan_poll, GRCAN_NAPI_WEIGHT); |
diff --git a/drivers/net/can/sja1000/peak_pcmcia.c b/drivers/net/can/sja1000/peak_pcmcia.c index 4b8758e10bd4..485b19c9ae47 100644 --- a/drivers/net/can/sja1000/peak_pcmcia.c +++ b/drivers/net/can/sja1000/peak_pcmcia.c | |||
@@ -381,9 +381,9 @@ static inline void pcan_set_can_power(struct pcan_pccard *card, int onoff) | |||
381 | /* | 381 | /* |
382 | * set leds state according to channel activity | 382 | * set leds state according to channel activity |
383 | */ | 383 | */ |
384 | static void pcan_led_timer(unsigned long arg) | 384 | static void pcan_led_timer(struct timer_list *t) |
385 | { | 385 | { |
386 | struct pcan_pccard *card = (struct pcan_pccard *)arg; | 386 | struct pcan_pccard *card = from_timer(card, t, led_timer); |
387 | struct net_device *netdev; | 387 | struct net_device *netdev; |
388 | int i, up_count = 0; | 388 | int i, up_count = 0; |
389 | u8 ccr; | 389 | u8 ccr; |
@@ -692,7 +692,7 @@ static int pcan_probe(struct pcmcia_device *pdev) | |||
692 | } | 692 | } |
693 | 693 | ||
694 | /* init the timer which controls the leds */ | 694 | /* init the timer which controls the leds */ |
695 | setup_timer(&card->led_timer, pcan_led_timer, (unsigned long)card); | 695 | timer_setup(&card->led_timer, pcan_led_timer, 0); |
696 | 696 | ||
697 | /* request the given irq */ | 697 | /* request the given irq */ |
698 | err = request_irq(pdev->irq, &pcan_isr, IRQF_SHARED, PCC_NAME, card); | 698 | err = request_irq(pdev->irq, &pcan_isr, IRQF_SHARED, PCC_NAME, card); |
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c index 7e10dbdded28..25a9b79cc42d 100644 --- a/drivers/net/can/usb/peak_usb/pcan_usb.c +++ b/drivers/net/can/usb/peak_usb/pcan_usb.c | |||
@@ -259,10 +259,13 @@ static int pcan_usb_write_mode(struct peak_usb_device *dev, u8 onoff) | |||
259 | /* | 259 | /* |
260 | * handle end of waiting for the device to reset | 260 | * handle end of waiting for the device to reset |
261 | */ | 261 | */ |
262 | static void pcan_usb_restart(unsigned long arg) | 262 | static void pcan_usb_restart(struct timer_list *t) |
263 | { | 263 | { |
264 | struct pcan_usb *pdev = from_timer(pdev, t, restart_timer); | ||
265 | struct peak_usb_device *dev = &pdev->dev; | ||
266 | |||
264 | /* notify candev and netdev */ | 267 | /* notify candev and netdev */ |
265 | peak_usb_restart_complete((struct peak_usb_device *)arg); | 268 | peak_usb_restart_complete(dev); |
266 | } | 269 | } |
267 | 270 | ||
268 | /* | 271 | /* |
@@ -798,8 +801,7 @@ static int pcan_usb_init(struct peak_usb_device *dev) | |||
798 | int err; | 801 | int err; |
799 | 802 | ||
800 | /* initialize a timer needed to wait for hardware restart */ | 803 | /* initialize a timer needed to wait for hardware restart */ |
801 | setup_timer(&pdev->restart_timer, pcan_usb_restart, | 804 | timer_setup(&pdev->restart_timer, pcan_usb_restart, 0); |
802 | (unsigned long)dev); | ||
803 | 805 | ||
804 | /* | 806 | /* |
805 | * explicit use of dev_xxx() instead of netdev_xxx() here: | 807 | * explicit use of dev_xxx() instead of netdev_xxx() here: |