Commit 0010e3f8 authored by Kees Cook's avatar Kees Cook Committed by David S. Miller
Browse files

net/ti/tlan: 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: Samuel Chessman <chessman@tux.org>
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 4966babd
Loading
Loading
Loading
Loading
+13 −19
Original line number Diff line number Diff line
@@ -172,7 +172,8 @@ static u32 tlan_handle_tx_eoc(struct net_device *, u16);
static u32	tlan_handle_status_check(struct net_device *, u16);
static u32	tlan_handle_rx_eoc(struct net_device *, u16);

static void	tlan_timer(unsigned long);
static void	tlan_timer(struct timer_list *t);
static void	tlan_phy_monitor(struct timer_list *t);

static void	tlan_reset_lists(struct net_device *);
static void	tlan_free_lists(struct net_device *);
@@ -190,7 +191,6 @@ static void tlan_phy_power_up(struct net_device *);
static void	tlan_phy_reset(struct net_device *);
static void	tlan_phy_start_link(struct net_device *);
static void	tlan_phy_finish_auto_neg(struct net_device *);
static void     tlan_phy_monitor(unsigned long);

/*
  static int	tlan_phy_nop(struct net_device *);
@@ -254,11 +254,10 @@ tlan_set_timer(struct net_device *dev, u32 ticks, u32 type)
			spin_unlock_irqrestore(&priv->lock, flags);
		return;
	}
	priv->timer.function = tlan_timer;
	priv->timer.function = (TIMER_FUNC_TYPE)tlan_timer;
	if (!in_irq())
		spin_unlock_irqrestore(&priv->lock, flags);

	priv->timer.data = (unsigned long) dev;
	priv->timer_set_at = jiffies;
	priv->timer_type = type;
	mod_timer(&priv->timer, jiffies + ticks);
@@ -926,8 +925,8 @@ static int tlan_open(struct net_device *dev)
		return err;
	}

	init_timer(&priv->timer);
	init_timer(&priv->media_timer);
	timer_setup(&priv->timer, NULL, 0);
	timer_setup(&priv->media_timer, tlan_phy_monitor, 0);

	tlan_start(dev);

@@ -1426,8 +1425,7 @@ static u32 tlan_handle_tx_eof(struct net_device *dev, u16 host_int)
		tlan_dio_write8(dev->base_addr,
				TLAN_LED_REG, TLAN_LED_LINK | TLAN_LED_ACT);
		if (priv->timer.function == NULL) {
			priv->timer.function = tlan_timer;
			priv->timer.data = (unsigned long) dev;
			priv->timer.function = (TIMER_FUNC_TYPE)tlan_timer;
			priv->timer.expires = jiffies + TLAN_TIMER_ACT_DELAY;
			priv->timer_set_at = jiffies;
			priv->timer_type = TLAN_TIMER_ACTIVITY;
@@ -1578,8 +1576,7 @@ drop_and_reuse:
		tlan_dio_write8(dev->base_addr,
				TLAN_LED_REG, TLAN_LED_LINK | TLAN_LED_ACT);
		if (priv->timer.function == NULL)  {
			priv->timer.function = tlan_timer;
			priv->timer.data = (unsigned long) dev;
			priv->timer.function = (TIMER_FUNC_TYPE)tlan_timer;
			priv->timer.expires = jiffies + TLAN_TIMER_ACT_DELAY;
			priv->timer_set_at = jiffies;
			priv->timer_type = TLAN_TIMER_ACTIVITY;
@@ -1836,10 +1833,10 @@ ThunderLAN driver timer function
 *
 **************************************************************/

static void tlan_timer(unsigned long data)
static void tlan_timer(struct timer_list *t)
{
	struct net_device	*dev = (struct net_device *) data;
	struct tlan_priv	*priv = netdev_priv(dev);
	struct tlan_priv	*priv = from_timer(priv, t, timer);
	struct net_device	*dev = priv->dev;
	u32		elapsed;
	unsigned long	flags = 0;

@@ -1872,7 +1869,6 @@ static void tlan_timer(unsigned long data)
				tlan_dio_write8(dev->base_addr,
						TLAN_LED_REG, TLAN_LED_LINK);
			} else  {
				priv->timer.function = tlan_timer;
				priv->timer.expires = priv->timer_set_at
					+ TLAN_TIMER_ACT_DELAY;
				spin_unlock_irqrestore(&priv->lock, flags);
@@ -2317,8 +2313,6 @@ tlan_finish_reset(struct net_device *dev)
			} else
				netdev_info(dev, "Link active\n");
			/* Enabling link beat monitoring */
			priv->media_timer.function = tlan_phy_monitor;
			priv->media_timer.data = (unsigned long) dev;
			priv->media_timer.expires = jiffies + HZ;
			add_timer(&priv->media_timer);
		}
@@ -2763,10 +2757,10 @@ static void tlan_phy_finish_auto_neg(struct net_device *dev)
 *
 *******************************************************************/

static void tlan_phy_monitor(unsigned long data)
static void tlan_phy_monitor(struct timer_list *t)
{
	struct net_device *dev = (struct net_device *) data;
	struct tlan_priv *priv = netdev_priv(dev);
	struct tlan_priv *priv = from_timer(priv, t, media_timer);
	struct net_device *dev = priv->dev;
	u16     phy;
	u16     phy_status;