aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen
diff options
context:
space:
mode:
authorRajesh Borundia <rajesh.borundia@qlogic.com>2010-11-22 22:08:27 -0500
committerDavid S. Miller <davem@davemloft.net>2010-11-28 13:47:16 -0500
commit5a6f95e653adf52ee1ff09cd5e66c2640c65ff66 (patch)
treee70e178fdd571f65d8d457d9c701facc16610c02 /drivers/net/netxen
parentb0044bcfa95ddf2e317863fb29121c284b6725ca (diff)
netxen: avoid using reset_devices as it may become obsolete
In kdump environment do not depend on reset_devices parameter to reset the device as the parameter may become obsolete. Instead use an adapter specific mechanism to determine if the device needs a reset. Driver maintains a count of number of pci functions probed and decrements the count when remove handler of that pci function is called. If the first probe, probe of function 0, detects the count as non zero then reset the device. Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com> Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen')
-rw-r--r--drivers/net/netxen/netxen_nic_main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index e1d30d7f2071..ceeaac989df2 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -1277,6 +1277,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1277 int i = 0, err; 1277 int i = 0, err;
1278 int pci_func_id = PCI_FUNC(pdev->devfn); 1278 int pci_func_id = PCI_FUNC(pdev->devfn);
1279 uint8_t revision_id; 1279 uint8_t revision_id;
1280 u32 val;
1280 1281
1281 if (pdev->revision >= NX_P3_A0 && pdev->revision <= NX_P3_B1) { 1282 if (pdev->revision >= NX_P3_A0 && pdev->revision <= NX_P3_B1) {
1282 pr_warning("%s: chip revisions between 0x%x-0x%x " 1283 pr_warning("%s: chip revisions between 0x%x-0x%x "
@@ -1352,8 +1353,9 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1352 break; 1353 break;
1353 } 1354 }
1354 1355
1355 if (reset_devices) { 1356 if (adapter->portnum == 0) {
1356 if (adapter->portnum == 0) { 1357 val = NXRD32(adapter, NX_CRB_DEV_REF_COUNT);
1358 if (val != 0xffffffff && val != 0) {
1357 NXWR32(adapter, NX_CRB_DEV_REF_COUNT, 0); 1359 NXWR32(adapter, NX_CRB_DEV_REF_COUNT, 0);
1358 adapter->need_fw_reset = 1; 1360 adapter->need_fw_reset = 1;
1359 } 1361 }