staging: et131x: Fix add_timer() from et131x_open
The error_timer was only getting initialised and an initial jiffies value set following a probe. This could result in the timer needlessly expiring immediately after et131x_open is called. Now this is all done from the open call instead. Signed-off-by: Mark Einon <mark.einon@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
25e1c2780c
commit
d84b7e29d8
|
@ -9,7 +9,6 @@ Note, the powermanagement options were removed from the vendor provided
|
|||
driver as they did not build properly at the time.
|
||||
|
||||
TODO:
|
||||
- add_timer call in et131x_netdev.c is correct?
|
||||
- Implement a few more kernel Parameter (set mac )
|
||||
|
||||
Please send patches to:
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
int et131x_init_eeprom(struct et131x_adapter *adapter);
|
||||
|
||||
/* et131x_initpci.c */
|
||||
void et131x_error_timer_handler(unsigned long data);
|
||||
void et131x_configure_global_regs(struct et131x_adapter *adapter);
|
||||
void et131x_enable_interrupts(struct et131x_adapter *adapter);
|
||||
void et131x_disable_interrupts(struct et131x_adapter *adapter);
|
||||
|
|
|
@ -750,10 +750,6 @@ static int __devinit et131x_pci_setup(struct pci_dev *pdev,
|
|||
/* Copy address into the net_device struct */
|
||||
memcpy(netdev->dev_addr, adapter->addr, ETH_ALEN);
|
||||
|
||||
adapter->error_timer.expires = jiffies + TX_ERROR_PERIOD * HZ / 1000;
|
||||
adapter->error_timer.function = et131x_error_timer_handler;
|
||||
adapter->error_timer.data = (unsigned long)adapter;
|
||||
|
||||
/* Init variable for counting how long we do not have link status */
|
||||
adapter->boot_coma = 0;
|
||||
et1310_disable_phy_coma(adapter);
|
||||
|
@ -795,9 +791,6 @@ static int __devinit et131x_pci_setup(struct pci_dev *pdev,
|
|||
/* Setup et1310 as per the documentation */
|
||||
et131x_adapter_setup(adapter);
|
||||
|
||||
/* Create a timer to count errors received by the NIC */
|
||||
init_timer(&adapter->error_timer);
|
||||
|
||||
/* We can enable interrupts now
|
||||
*
|
||||
* NOTE - Because registration of interrupt handler is done in the
|
||||
|
|
|
@ -187,6 +187,10 @@ int et131x_open(struct net_device *netdev)
|
|||
struct et131x_adapter *adapter = netdev_priv(netdev);
|
||||
|
||||
/* Start the timer to track NIC errors */
|
||||
init_timer(&adapter->error_timer);
|
||||
adapter->error_timer.expires = jiffies + TX_ERROR_PERIOD * HZ / 1000;
|
||||
adapter->error_timer.function = et131x_error_timer_handler;
|
||||
adapter->error_timer.data = (unsigned long)adapter;
|
||||
add_timer(&adapter->error_timer);
|
||||
|
||||
/* Register our IRQ */
|
||||
|
|
Loading…
Reference in New Issue