Commit d9935679 authored by Kees Cook's avatar Kees Cook Committed by David S. Miller

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" <davem@davemloft.net>
Cc: Zhu Yanjun <yanjun.zhu@oracle.com>
Cc: Philippe Reynes <tremyfr@gmail.com>
Cc: netdev@vger.kernel.org
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 11dd894e
...@@ -1884,10 +1884,9 @@ static int nv_alloc_rx_optimized(struct net_device *dev) ...@@ -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 */ /* 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 = from_timer(np, t, oom_kick);
struct fe_priv *np = netdev_priv(dev);
/* Just reschedule NAPI rx processing */ /* Just reschedule NAPI rx processing */
napi_schedule(&np->napi); napi_schedule(&np->napi);
...@@ -4065,10 +4064,10 @@ static void nv_free_irq(struct net_device *dev) ...@@ -4065,10 +4064,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 = from_timer(np, t, nic_poll);
struct fe_priv *np = netdev_priv(dev); struct net_device *dev = np->dev;
u8 __iomem *base = get_hwbase(dev); u8 __iomem *base = get_hwbase(dev);
u32 mask = 0; u32 mask = 0;
unsigned long flags; unsigned long flags;
...@@ -4176,16 +4175,18 @@ static void nv_do_nic_poll(unsigned long data) ...@@ -4176,16 +4175,18 @@ static void nv_do_nic_poll(unsigned long data)
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
static void nv_poll_controller(struct net_device *dev) 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 #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) __acquires(&netdev_priv(dev)->hwstats_lock)
__releases(&netdev_priv(dev)->hwstats_lock) __releases(&netdev_priv(dev)->hwstats_lock)
{ {
struct net_device *dev = (struct net_device *) data; struct fe_priv *np = from_timer(np, t, stats_poll);
struct fe_priv *np = netdev_priv(dev); struct net_device *dev = np->dev;
/* If lock is currently taken, the stats are being refreshed /* If lock is currently taken, the stats are being refreshed
* and hence fresh enough */ * and hence fresh enough */
...@@ -5631,10 +5632,9 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) ...@@ -5631,10 +5632,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_rx_syncp);
u64_stats_init(&np->swstats_tx_syncp); u64_stats_init(&np->swstats_tx_syncp);
setup_timer(&np->oom_kick, nv_do_rx_refill, (unsigned long)dev); timer_setup(&np->oom_kick, nv_do_rx_refill, 0);
setup_timer(&np->nic_poll, nv_do_nic_poll, (unsigned long)dev); timer_setup(&np->nic_poll, nv_do_nic_poll, 0);
setup_deferrable_timer(&np->stats_poll, nv_do_stats_poll, timer_setup(&np->stats_poll, nv_do_stats_poll, TIMER_DEFERRABLE);
(unsigned long)dev);
err = pci_enable_device(pci_dev); err = pci_enable_device(pci_dev);
if (err) if (err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment