[TG3]: Save initial PCI state before registering the netdevice.
Else on SMP systems it is possible for hotplug to execute, invoke tg3_open(), and end up loading the uninitialized PCI register save area into the card. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6fc0b4a7a7
commit
7d3f4c9772
1 changed files with 8 additions and 8 deletions
|
@ -66,8 +66,8 @@
|
||||||
|
|
||||||
#define DRV_MODULE_NAME "tg3"
|
#define DRV_MODULE_NAME "tg3"
|
||||||
#define PFX DRV_MODULE_NAME ": "
|
#define PFX DRV_MODULE_NAME ": "
|
||||||
#define DRV_MODULE_VERSION "3.34"
|
#define DRV_MODULE_VERSION "3.35"
|
||||||
#define DRV_MODULE_RELDATE "July 25, 2005"
|
#define DRV_MODULE_RELDATE "August 6, 2005"
|
||||||
|
|
||||||
#define TG3_DEF_MAC_MODE 0
|
#define TG3_DEF_MAC_MODE 0
|
||||||
#define TG3_DEF_RX_MODE 0
|
#define TG3_DEF_RX_MODE 0
|
||||||
|
@ -10421,6 +10421,12 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
|
||||||
|
|
||||||
tg3_init_coal(tp);
|
tg3_init_coal(tp);
|
||||||
|
|
||||||
|
/* Now that we have fully setup the chip, save away a snapshot
|
||||||
|
* of the PCI config space. We need to restore this after
|
||||||
|
* GRC_MISC_CFG core clock resets and some resume events.
|
||||||
|
*/
|
||||||
|
pci_save_state(tp->pdev);
|
||||||
|
|
||||||
err = register_netdev(dev);
|
err = register_netdev(dev);
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_ERR PFX "Cannot register net device, "
|
printk(KERN_ERR PFX "Cannot register net device, "
|
||||||
|
@ -10430,12 +10436,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
|
||||||
|
|
||||||
pci_set_drvdata(pdev, dev);
|
pci_set_drvdata(pdev, dev);
|
||||||
|
|
||||||
/* Now that we have fully setup the chip, save away a snapshot
|
|
||||||
* of the PCI config space. We need to restore this after
|
|
||||||
* GRC_MISC_CFG core clock resets and some resume events.
|
|
||||||
*/
|
|
||||||
pci_save_state(tp->pdev);
|
|
||||||
|
|
||||||
printk(KERN_INFO "%s: Tigon3 [partno(%s) rev %04x PHY(%s)] (PCI%s:%s:%s) %sBaseT Ethernet ",
|
printk(KERN_INFO "%s: Tigon3 [partno(%s) rev %04x PHY(%s)] (PCI%s:%s:%s) %sBaseT Ethernet ",
|
||||||
dev->name,
|
dev->name,
|
||||||
tp->board_part_number,
|
tp->board_part_number,
|
||||||
|
|
Loading…
Reference in a new issue