forcedeth: Convert timers to use timer_setup()
Subsystems (3)
PATCH 1/1 forcedeth: 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 "David S. Miller" <[email protected]>
Cc Zhu Yanjun <[email protected]>
Cc Philippe Reynes <[email protected]>
Cc Thomas Gleixner <[email protected]>
Signed-off-by Kees Cook <[email protected]>
---
This requires commit 686fef928bba ("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
--- drivers/net/ethernet/nvidia/forcedeth.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)
drivers/net/ethernet/nvidia/forcedeth.c +14 -14
@@ -1884,10 +1884,9 @@ static int nv_alloc_rx_optimized(struct net_device *dev) }/* If rx bufs are exhausted called after 50ms to attempt to refresh */ -static void nv_do_rx_refill (unsigned long data) +static void nv_do_rx_refill (struct timer_list *t) { -struct net_device *dev = (struct net_device *) data; -struct fe_priv *np =netdev_priv (dev); +struct fe_priv *np =from_timer (np, t, oom_kick);/* Just reschedule NAPI rx processing */ napi_schedule (&np->napi);
@@ -4061,10 +4060,10 @@ static void nv_free_irq(struct net_device *dev) } } -static void nv_do_nic_poll (unsigned long data) +static void nv_do_nic_poll (struct timer_list *t) { -struct net_device *dev = (struct net_device *) data; -struct fe_priv *np =netdev_priv (dev); +struct fe_priv *np =from_timer (np, t, nic_poll); +struct net_device *dev = np->dev;u8 __iomem *base =get_hwbase (dev);u32 mask =0 ;unsigned long flags;
@@ -4172,16 +4171,18 @@ static void nv_do_nic_poll(unsigned long data)#ifdef CONFIG_NET_POLL_CONTROLLER static void nv_poll_controller (struct net_device *dev) { -nv_do_nic_poll ((unsigned long ) dev); +struct fe_priv *np =netdev_priv (dev); + +nv_do_nic_poll (&np->nic_poll); }#endif -static void nv_do_stats_poll (unsigned long data) +static void nv_do_stats_poll (struct timer_list *t) __acquires(&netdev_priv(dev)->hwstats_lock) __releases(&netdev_priv(dev)->hwstats_lock) { -struct net_device *dev = (struct net_device *) data; -struct fe_priv *np =netdev_priv (dev); +struct fe_priv *np =from_timer (np, t, stats_poll); +struct net_device *dev = np->dev;/* If lock is currently taken, the stats are being refreshed * and hence fresh enough */
@@ -5627,10 +5628,9 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)u64_stats_init (&np->swstats_rx_syncp);u64_stats_init (&np->swstats_tx_syncp); -setup_timer (&np->oom_kick, nv_do_rx_refill, (unsigned long )dev); -setup_timer (&np->nic_poll, nv_do_nic_poll, (unsigned long )dev); -setup_deferrable_timer (&np->stats_poll, nv_do_stats_poll, - (unsigned long )dev); +timer_setup (&np->oom_kick, nv_do_rx_refill,0 ); +timer_setup (&np->nic_poll, nv_do_nic_poll,0 ); +timer_setup (&np->stats_poll, nv_do_stats_poll,TIMER_DEFERRABLE ); err =pci_enable_device (pci_dev);if (err)
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security