From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Jacob Keller <jacob.e.keller@intel.com>,
netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
jogreene@redhat.com, guru.anbalagane@oracle.com,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 08/14] fm10k: don't continue probe if PCI device not in normal IO state
Date: Mon, 29 Aug 2016 02:13:40 -0700 [thread overview]
Message-ID: <1472462026-42133-9-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1472462026-42133-1-git-send-email-jeffrey.t.kirsher@intel.com>
From: Jacob Keller <jacob.e.keller@intel.com>
In the event of an uncorrectable AER error occurring when the driver has
not loaded, the recovery routines are not done. This is done because
future loads of the driver may not be aware of the IO state and may not
be able to recover at all. In this case, when we next load the driver it
fails due to what appears to be a surprise remove event. Instead, add
a check to ensure that the device is in the normal IO state before
continuing to probe. This allows us to give a more descriptive message
of what is wrong.
Without this change, the driver will attempt to probe up to our first
call of .reset_hw() which will be unable to read registers and act as if
a surprise remove event occurred.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c
index e5f37b7..860fe04 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c
@@ -1950,6 +1950,12 @@ static int fm10k_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct fm10k_intfc *interface;
int err;
+ if (pdev->error_state != pci_channel_io_normal) {
+ dev_err(&pdev->dev,
+ "PCI device still in an error state. Unable to load...\n");
+ return -EIO;
+ }
+
err = pci_enable_device_mem(pdev);
if (err) {
dev_err(&pdev->dev,
--
2.7.4
next prev parent reply other threads:[~2016-08-29 9:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-29 9:13 [net-next 00/14][pull request] 100GbE Intel Wired LAN Driver Updates 2016-08-29 Jeff Kirsher
2016-08-29 9:13 ` [net-next 01/14] fm10k: fix PCI device enable_cnt leak in .io_slot_reset Jeff Kirsher
2016-08-29 9:13 ` [net-next 02/14] fm10k: use software values when checking for Tx hangs in hot path Jeff Kirsher
2016-08-29 9:13 ` [net-next 03/14] fm10k: use variadic form of alloc_workqueue Jeff Kirsher
2016-08-29 9:13 ` [net-next 04/14] fm10k: remove fm10k_get_reta_size from namespace Jeff Kirsher
2016-08-29 9:13 ` [net-next 05/14] fm10k: prefer READ_ONCE instead of ACCESS_ONCE Jeff Kirsher
2016-08-29 9:13 ` [net-next 06/14] fm10k: NAPI polling routine must return actual work done Jeff Kirsher
2016-08-29 9:13 ` [net-next 07/14] fm10k: print error code when pci_enable_device_mem fails during probe Jeff Kirsher
2016-08-29 9:13 ` Jeff Kirsher [this message]
2016-08-29 9:13 ` [net-next 09/14] fm10k: don't try to stop queues if we've lost hw_addr Jeff Kirsher
2016-08-29 9:13 ` [net-next 10/14] fm10k: rework vxlan_port offload before adding geneve support Jeff Kirsher
2016-08-29 9:13 ` [net-next 11/14] fm10k: add support for Rx offloads on one Geneve tunnel Jeff Kirsher
2016-08-29 9:13 ` [net-next 12/14] fm10k: remove unnecessary extra parenthesis around ((~value)) Jeff Kirsher
2016-08-29 9:13 ` [net-next 13/14] fm10k: don't clear the RXQCTL register when enabling or disabling queues Jeff Kirsher
2016-08-29 9:13 ` [net-next 14/14] fm10k: don't re-map queues when a mailbox message suffices Jeff Kirsher
2016-08-30 5:55 ` [net-next 00/14][pull request] 100GbE Intel Wired LAN Driver Updates 2016-08-29 David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1472462026-42133-9-git-send-email-jeffrey.t.kirsher@intel.com \
--to=jeffrey.t.kirsher@intel.com \
--cc=davem@davemloft.net \
--cc=guru.anbalagane@oracle.com \
--cc=jacob.e.keller@intel.com \
--cc=jogreene@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@redhat.com \
--cc=sassmann@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).