diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index ae69d65158e6624be9307511d91c4983317926a5..37b1e0d03e31d09a29fda60f5173cfea49e0f76a 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c @@ -99,7 +99,7 @@ static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, size_t c static void lmc_softreset(lmc_softc_t * const); static void lmc_running_reset(struct net_device *dev); static int lmc_ifdown(struct net_device * const); -static void lmc_watchdog(unsigned long data); +static void lmc_watchdog(struct timer_list *t); static void lmc_reset(lmc_softc_t * const sc); static void lmc_dec_reset(lmc_softc_t * const sc); static void lmc_driver_timeout(struct net_device *dev); @@ -636,10 +636,10 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/ /* the watchdog process that cruises around */ -static void lmc_watchdog (unsigned long data) /*fold00*/ +static void lmc_watchdog(struct timer_list *t) /*fold00*/ { - struct net_device *dev = (struct net_device *)data; - lmc_softc_t *sc = dev_to_sc(dev); + lmc_softc_t *sc = from_timer(sc, t, timer); + struct net_device *dev = sc->lmc_device; int link_status; u32 ticks; unsigned long flags; @@ -1084,7 +1084,7 @@ static int lmc_open(struct net_device *dev) * Setup a timer for the watchdog on probe, and start it running. * Since lmc_ok == 0, it will be a NOP for now. */ - setup_timer(&sc->timer, lmc_watchdog, (unsigned long)dev); + timer_setup(&sc->timer, lmc_watchdog, 0); sc->timer.expires = jiffies + HZ; add_timer (&sc->timer);