Skip to content

Commit

Permalink
[TG3]: Save initial PCI state before registering the netdevice.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David S. Miller committed Aug 6, 2005
1 parent 6fc0b4a commit 7d3f4c9
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@

#define DRV_MODULE_NAME "tg3"
#define PFX DRV_MODULE_NAME ": "
#define DRV_MODULE_VERSION "3.34"
#define DRV_MODULE_RELDATE "July 25, 2005"
#define DRV_MODULE_VERSION "3.35"
#define DRV_MODULE_RELDATE "August 6, 2005"

#define TG3_DEF_MAC_MODE 0
#define TG3_DEF_RX_MODE 0
Expand Down Expand Up @@ -10421,6 +10421,12 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,

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);
if (err) {
printk(KERN_ERR PFX "Cannot register net device, "
Expand All @@ -10430,12 +10436,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,

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 ",
dev->name,
tp->board_part_number,
Expand Down

0 comments on commit 7d3f4c9

Please sign in to comment.