diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-06-22 20:26:21 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-23 04:16:43 -0700 |
commit | 96f2ebd2e10417da151202c750d8664767a2194b (patch) | |
tree | cfa8b81d1cf4cf61f0e94fe2b34d51b2c01d85fd /drivers/net/netxen/netxen_nic_main.c | |
parent | 01542cd1bbf995f951e2c2383d7911e96b12bec6 (diff) | |
download | lwn-96f2ebd2e10417da151202c750d8664767a2194b.tar.gz lwn-96f2ebd2e10417da151202c750d8664767a2194b.zip |
netxen: fix firmware init handshake
Make sure all functions run firmware init handshake.
If PCI function 0 fails to initialize firmware, mark the
state failed so that other functions on the same board
bail out quickly instead of waiting 30s for firmware
handshake.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_main.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 43ac333898bf..2919a2d12bf4 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c @@ -705,7 +705,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw) first_driver = (adapter->ahw.pci_func == 0); if (!first_driver) - return 0; + goto wait_init; first_boot = NXRD32(adapter, NETXEN_CAM_RAM(0x1fc)); @@ -752,6 +752,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw) | (_NETXEN_NIC_LINUX_SUBVERSION); NXWR32(adapter, CRB_DRIVER_VERSION, val); +wait_init: /* Handshake with the card before we register the devices. */ err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); if (err) { |