diff options
author | Rajesh Borundia <rajesh.borundia@qlogic.com> | 2010-11-22 20:25:21 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-28 13:47:16 -0500 |
commit | b0044bcfa95ddf2e317863fb29121c284b6725ca (patch) | |
tree | ced7b7d4d06ab51fa3bcdfe19a5191e380e85e52 /drivers/net/qlcnic/qlcnic_main.c | |
parent | 5584b8078a60e34ec7d37c9b67a0f3d389a1a2f6 (diff) |
qlcnic: avoid using reset_devices as it may become obsolete.
In kdump environment do not depend upon reset_devices parameter
to reset the pci function as this parameter may become obsolete.
Instead use an adapter specific mechanism to determine if the pci
function needs to be reset.
Per function refcount is maintained in driver, which is set in probe
and reset in remove handler of adapter. If the probe detects the count
as non zero then reset the function.
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/qlcnic/qlcnic_main.c')
-rw-r--r-- | drivers/net/qlcnic/qlcnic_main.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index a3dcd04be22f..899df5a81fda 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
@@ -1485,6 +1485,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1485 | uint8_t revision_id; | 1485 | uint8_t revision_id; |
1486 | uint8_t pci_using_dac; | 1486 | uint8_t pci_using_dac; |
1487 | char brd_name[QLCNIC_MAX_BOARD_NAME_LEN]; | 1487 | char brd_name[QLCNIC_MAX_BOARD_NAME_LEN]; |
1488 | u32 val; | ||
1488 | 1489 | ||
1489 | err = pci_enable_device(pdev); | 1490 | err = pci_enable_device(pdev); |
1490 | if (err) | 1491 | if (err) |
@@ -1546,6 +1547,10 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1546 | if (err) | 1547 | if (err) |
1547 | goto err_out_iounmap; | 1548 | goto err_out_iounmap; |
1548 | 1549 | ||
1550 | val = QLCRD32(adapter, QLCNIC_CRB_DRV_ACTIVE); | ||
1551 | if (QLC_DEV_CHECK_ACTIVE(val, adapter->portnum)) | ||
1552 | adapter->flags |= QLCNIC_NEED_FLR; | ||
1553 | |||
1549 | err = adapter->nic_ops->start_firmware(adapter); | 1554 | err = adapter->nic_ops->start_firmware(adapter); |
1550 | if (err) { | 1555 | if (err) { |
1551 | dev_err(&pdev->dev, "Loading fw failed.Please Reboot\n"); | 1556 | dev_err(&pdev->dev, "Loading fw failed.Please Reboot\n"); |