Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 37959
b: refs/heads/master
c: 1314bbf
h: refs/heads/master
i:
  37957: c8fb67b
  37955: 20392ed
  37951: bf549a7
v: v3
  • Loading branch information
Auke Kok authored and Auke Kok committed Sep 27, 2006
1 parent 58187c8 commit 0e04d77
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4f5f2317fbb3655edae21de3ada0f1692523eeef
refs/heads/master: 1314bbf3a3d911218fc153e14873e2e384d08084
3 changes: 2 additions & 1 deletion trunk/drivers/net/e1000/e1000.h
Original file line number Diff line number Diff line change
Expand Up @@ -345,8 +345,9 @@ struct e1000_adapter {
};

enum e1000_state_t {
__E1000_DRIVER_TESTING,
__E1000_TESTING,
__E1000_RESETTING,
__E1000_DOWN
};

#endif /* _E1000_H_ */
6 changes: 3 additions & 3 deletions trunk/drivers/net/e1000/e1000_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -1624,7 +1624,7 @@ e1000_diag_test(struct net_device *netdev,
struct e1000_adapter *adapter = netdev_priv(netdev);
boolean_t if_running = netif_running(netdev);

set_bit(__E1000_DRIVER_TESTING, &adapter->flags);
set_bit(__E1000_TESTING, &adapter->flags);
if (eth_test->flags == ETH_TEST_FL_OFFLINE) {
/* Offline tests */

Expand Down Expand Up @@ -1669,7 +1669,7 @@ e1000_diag_test(struct net_device *netdev,
adapter->hw.autoneg = autoneg;

e1000_reset(adapter);
clear_bit(__E1000_DRIVER_TESTING, &adapter->flags);
clear_bit(__E1000_TESTING, &adapter->flags);
if (if_running)
dev_open(netdev);
} else {
Expand All @@ -1684,7 +1684,7 @@ e1000_diag_test(struct net_device *netdev,
data[2] = 0;
data[3] = 0;

clear_bit(__E1000_DRIVER_TESTING, &adapter->flags);
clear_bit(__E1000_TESTING, &adapter->flags);
}
msleep_interruptible(4 * 1000);
}
Expand Down
28 changes: 18 additions & 10 deletions trunk/drivers/net/e1000/e1000_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -476,13 +476,14 @@ e1000_up(struct e1000_adapter *adapter)

adapter->tx_queue_len = netdev->tx_queue_len;

mod_timer(&adapter->watchdog_timer, jiffies);

#ifdef CONFIG_E1000_NAPI
netif_poll_enable(netdev);
#endif
e1000_irq_enable(adapter);

clear_bit(__E1000_DOWN, &adapter->flags);

mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ);
return 0;
}

Expand Down Expand Up @@ -561,6 +562,10 @@ e1000_down(struct e1000_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;

/* signal that we're down so the interrupt handler does not
* reschedule our watchdog timer */
set_bit(__E1000_DOWN, &adapter->flags);

e1000_irq_disable(adapter);

del_timer_sync(&adapter->tx_fifo_stall_timer);
Expand Down Expand Up @@ -903,11 +908,6 @@ e1000_probe(struct pci_dev *pdev,
INIT_WORK(&adapter->reset_task,
(void (*)(void *))e1000_reset_task, netdev);

/* we're going to reset, so assume we have no link for now */

netif_carrier_off(netdev);
netif_stop_queue(netdev);

e1000_check_options(adapter);

/* Initial Wake on LAN setting
Expand Down Expand Up @@ -1014,6 +1014,10 @@ e1000_probe(struct pci_dev *pdev,
if ((err = register_netdev(netdev)))
goto err_register;

/* tell the stack to leave us alone until e1000_open() is called */
netif_carrier_off(netdev);
netif_stop_queue(netdev);

DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n");

cards_found++;
Expand Down Expand Up @@ -1200,6 +1204,8 @@ e1000_sw_init(struct e1000_adapter *adapter)
atomic_set(&adapter->irq_sem, 1);
spin_lock_init(&adapter->stats_lock);

set_bit(__E1000_DOWN, &adapter->flags);

return 0;
}

Expand Down Expand Up @@ -1265,7 +1271,7 @@ e1000_open(struct net_device *netdev)
int err;

/* disallow open during test */
if (test_bit(__E1000_DRIVER_TESTING, &adapter->flags))
if (test_bit(__E1000_TESTING, &adapter->flags))
return -EBUSY;

/* allocate transmit descriptors */
Expand Down Expand Up @@ -3072,7 +3078,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
if (unlikely(adapter->hw.mac_type == e1000_82547)) {
if (unlikely(e1000_82547_fifo_workaround(adapter, skb))) {
netif_stop_queue(netdev);
mod_timer(&adapter->tx_fifo_stall_timer, jiffies);
mod_timer(&adapter->tx_fifo_stall_timer, jiffies + 1);
spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
return NETDEV_TX_BUSY;
}
Expand Down Expand Up @@ -3468,7 +3474,9 @@ e1000_intr(int irq, void *data, struct pt_regs *regs)
rctl = E1000_READ_REG(hw, RCTL);
E1000_WRITE_REG(hw, RCTL, rctl & ~E1000_RCTL_EN);
}
mod_timer(&adapter->watchdog_timer, jiffies);
/* guard against interrupt when we're going down */
if (!test_bit(__E1000_DOWN, &adapter->flags))
mod_timer(&adapter->watchdog_timer, jiffies + 1);
}

#ifdef CONFIG_E1000_NAPI
Expand Down

0 comments on commit 0e04d77

Please sign in to comment.