s2io: fixing a ethtool test that is broken
authorBreno Leitao <leitao@linux.vnet.ibm.com>
Tue, 10 Nov 2009 09:44:23 +0000 (09:44 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 14 Nov 2009 03:56:53 +0000 (19:56 -0800)
Due commit 4b77b0a2ba27d64f58f16d8d4d48d8319dda36ff, it is not more
possible to pci_restore_state() more than once without calling
pci_save_state() in the middle.

Actually running a ethtool test on s2io makes the card inactive,
and it needs to unload/reload the module to fix.

This patch just save the state just after it restore in order to
keep the old behaviour

Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/s2io.c

index ddccf5fa56b63b998d2344e6e67cf6e7fd4977e4..0dd7839322bc6044d8d21738978955dc1a752cf6 100644 (file)
@@ -3494,6 +3494,7 @@ static void s2io_reset(struct s2io_nic *sp)
 
                /* Restore the PCI state saved during initialization. */
                pci_restore_state(sp->pdev);
+               pci_save_state(sp->pdev);
                pci_read_config_word(sp->pdev, 0x2, &val16);
                if (check_pci_device_id(val16) != (u16)PCI_ANY_ID)
                        break;