r8169: fix a race between PCI probe and dev_open
Initialize the timer with the rest of the private-struct. Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
9e0db8ef4a
commit
2efa53f373
1 changed files with 5 additions and 5 deletions
|
@ -1368,11 +1368,7 @@ static inline void rtl8169_request_timer(struct net_device *dev)
|
|||
(tp->phy_version >= RTL_GIGA_PHY_VER_H))
|
||||
return;
|
||||
|
||||
init_timer(timer);
|
||||
timer->expires = jiffies + RTL8169_PHY_TIMEOUT;
|
||||
timer->data = (unsigned long)(dev);
|
||||
timer->function = rtl8169_phy_timer;
|
||||
add_timer(timer);
|
||||
mod_timer(timer, jiffies + RTL8169_PHY_TIMEOUT);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
|
@ -1685,6 +1681,10 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
tp->mmio_addr = ioaddr;
|
||||
tp->align = rtl_cfg_info[ent->driver_data].align;
|
||||
|
||||
init_timer(&tp->timer);
|
||||
tp->timer.data = (unsigned long) dev;
|
||||
tp->timer.function = rtl8169_phy_timer;
|
||||
|
||||
spin_lock_init(&tp->lock);
|
||||
|
||||
rc = register_netdev(dev);
|
||||
|
|
Loading…
Reference in a new issue