From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Anjali Singhai Jain <anjali.singhai@intel.com>,
netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 07/15] i40e: Fix an issue when PF reset fails
Date: Fri, 29 Aug 2014 02:30:12 -0700 [thread overview]
Message-ID: <1409304620-23251-8-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1409304620-23251-1-git-send-email-jeffrey.t.kirsher@intel.com>
From: Anjali Singhai Jain <anjali.singhai@intel.com>
We shouldn't restart Admin queue subtask if PF reset fails since we do
not have the AQ setup at that point. This patch makes sure we disable AQ
clean subtask when PF reset fails.
This will resolve an occasional kernel panic when PF reset fails for
some reason.
Change-ID: I11a747773362a8c5c0ad7a10cd34be0bda8eb9e8
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Tested-by: Jim Young <jamesx.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 13 ++++++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 4e97ba1..f1e33f8 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -145,6 +145,7 @@ enum i40e_state_t {
__I40E_BAD_EEPROM,
__I40E_DOWN_REQUESTED,
__I40E_FD_FLUSH_REQUESTED,
+ __I40E_RESET_FAILED,
};
enum i40e_interrupt_policy {
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 55a31ab..64b8683 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5568,6 +5568,10 @@ static void i40e_clean_adminq_subtask(struct i40e_pf *pf)
u32 oldval;
u32 val;
+ /* Do not run clean AQ when PF reset fails */
+ if (test_bit(__I40E_RESET_FAILED, &pf->state))
+ return;
+
/* check for error indications */
val = rd32(&pf->hw, pf->hw.aq.arq.len);
oldval = val;
@@ -5973,19 +5977,20 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
ret = i40e_pf_reset(hw);
if (ret) {
dev_info(&pf->pdev->dev, "PF reset failed, %d\n", ret);
- goto end_core_reset;
+ set_bit(__I40E_RESET_FAILED, &pf->state);
+ goto clear_recovery;
}
pf->pfr_count++;
if (test_bit(__I40E_DOWN, &pf->state))
- goto end_core_reset;
+ goto clear_recovery;
dev_dbg(&pf->pdev->dev, "Rebuilding internal switch\n");
/* rebuild the basics for the AdminQ, HMC, and initial HW switch */
ret = i40e_init_adminq(&pf->hw);
if (ret) {
dev_info(&pf->pdev->dev, "Rebuild AdminQ failed, %d\n", ret);
- goto end_core_reset;
+ goto clear_recovery;
}
/* re-verify the eeprom if we just had an EMP reset */
@@ -6103,6 +6108,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
i40e_send_version(pf);
end_core_reset:
+ clear_bit(__I40E_RESET_FAILED, &pf->state);
+clear_recovery:
clear_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state);
}
--
1.9.3
next prev parent reply other threads:[~2014-08-29 9:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 9:30 [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-08-29 Jeff Kirsher
2014-08-29 9:30 ` [net-next 01/15] i40e: Add dual speed module support Jeff Kirsher
2014-08-29 9:30 ` [net-next 02/15] i40e: Allow user to change link settings if link is down Jeff Kirsher
2014-08-29 9:30 ` [net-next 03/15] i40e: Change wording to be more consistent Jeff Kirsher
2014-08-29 9:30 ` [net-next 04/15] i40e: Remove unnecessary assignment Jeff Kirsher
2014-08-29 9:30 ` [net-next 05/15] i40e: Tell OS link is going down when calling set_phy_config Jeff Kirsher
2014-08-29 17:37 ` Sergei Shtylyov
2014-09-03 17:27 ` Greg Rose
2014-08-29 9:30 ` [net-next 06/15] i40e: make warning less verbose Jeff Kirsher
2014-08-29 9:30 ` Jeff Kirsher [this message]
2014-08-29 9:30 ` [net-next 08/15] i40e: fix panic due to too-early Tx queue enable Jeff Kirsher
2014-08-29 17:08 ` Sergei Shtylyov
2014-08-29 9:30 ` [net-next 09/15] i40e/i40evf: Bump i40e/i40evf versions Jeff Kirsher
2014-08-29 9:30 ` [net-next 10/15] i40e: use global pci_vfs_assigned() to replace local i40e_vfs_are_assigned() Jeff Kirsher
2014-08-29 9:30 ` [net-next 11/15] ixgbe: Cleanup FDB handling code Jeff Kirsher
2014-08-29 9:30 ` [net-next 12/15] ixgbe: reset interface on link loss with pending Tx work from the VF Jeff Kirsher
2014-08-29 9:30 ` [net-next 13/15] ixgbevf: introduce delay for checking VFLINKS on 82599 Jeff Kirsher
2014-08-29 9:30 ` [net-next 14/15] ixgbe: add comment noting recalculation of queues Jeff Kirsher
2014-08-29 9:30 ` [net-next 15/15] ixgbe: limit combined total of macvlan and SR-IOV VFs Jeff Kirsher
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=1409304620-23251-8-git-send-email-jeffrey.t.kirsher@intel.com \
--to=jeffrey.t.kirsher@intel.com \
--cc=anjali.singhai@intel.com \
--cc=davem@davemloft.net \
--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).