From: Thinh Tran <thinhtr@linux.ibm.com>
To: netdev@vger.kernel.org, kuba@kernel.org,
anthony.l.nguyen@intel.com, aleksandr.loktionov@intel.com,
przemyslaw.kitszel@intel.com, pmenzel@molgen.mpg.de
Cc: edumazet@google.com, rob.thomas@ibm.com,
Thinh Tran <thinhtr@linux.ibm.com>,
Jacob Keller <jacob.e.keller@intel.com>,
intel-wired-lan@lists.osuosl.org, pabeni@redhat.com,
davem@davemloft.net
Subject: [Intel-wired-lan] [PATCH iwl-net V4, 2/2] i40e: Fully suspend and resume IO operations in EEH case
Date: Wed, 15 May 2024 16:07:05 -0500 [thread overview]
Message-ID: <20240515210705.620-3-thinhtr@linux.ibm.com> (raw)
In-Reply-To: <20240515210705.620-1-thinhtr@linux.ibm.com>
When EEH events occurs, the callback functions in the i40e, which are
managed by the EEH driver, will completely suspend and resume all IO
operations.
- In the PCI error detected callback, replaced i40e_prep_for_reset()
with i40e_io_suspend(). The change is to fully suspend all I/O
operations
- In the PCI error slot reset callback, replaced pci_enable_device_mem()
with pci_enable_device(). This change enables both I/O and memory of
the device.
- In the PCI error resume callback, replaced i40e_handle_reset_warning()
with i40e_io_resume(). This change allows the system to resume I/O
operations
Fixes: a5f3d2c17b07 ("powerpc/pseries/pci: Add MSI domains")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Robert Thomas <rob.thomas@ibm.com>
Signed-off-by: Thinh Tran <thinhtr@linux.ibm.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 281c8ec27af2..9f71a61e0c52 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -11138,6 +11138,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit,
ret = i40e_reset(pf);
if (!ret)
i40e_rebuild(pf, reinit, lock_acquired);
+ else
+ dev_err(&pf->pdev->dev, "%s: i40e_reset() FAILED", __func__);
}
/**
@@ -16459,7 +16461,7 @@ static pci_ers_result_t i40e_pci_error_detected(struct pci_dev *pdev,
/* shutdown all operations */
if (!test_bit(__I40E_SUSPENDED, pf->state))
- i40e_prep_for_reset(pf);
+ i40e_io_suspend(pf);
/* Request a slot reset */
return PCI_ERS_RESULT_NEED_RESET;
@@ -16481,7 +16483,8 @@ static pci_ers_result_t i40e_pci_error_slot_reset(struct pci_dev *pdev)
u32 reg;
dev_dbg(&pdev->dev, "%s\n", __func__);
- if (pci_enable_device_mem(pdev)) {
+ /* enable I/O and memory of the device */
+ if (pci_enable_device(pdev)) {
dev_info(&pdev->dev,
"Cannot re-enable PCI device after reset.\n");
result = PCI_ERS_RESULT_DISCONNECT;
@@ -16544,7 +16547,7 @@ static void i40e_pci_error_resume(struct pci_dev *pdev)
if (test_bit(__I40E_SUSPENDED, pf->state))
return;
- i40e_handle_reset_warning(pf, false);
+ i40e_io_resume(pf);
}
/**
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Thinh Tran <thinhtr@linux.ibm.com>
To: netdev@vger.kernel.org, kuba@kernel.org,
anthony.l.nguyen@intel.com, aleksandr.loktionov@intel.com,
przemyslaw.kitszel@intel.com, pmenzel@molgen.mpg.de
Cc: jesse.brandeburg@intel.com, davem@davemloft.net,
edumazet@google.com, pabeni@redhat.com,
intel-wired-lan@lists.osuosl.org, rob.thomas@ibm.com,
Thinh Tran <thinhtr@linux.ibm.com>,
Jacob Keller <jacob.e.keller@intel.com>
Subject: [PATCH iwl-net V4,2/2] i40e: Fully suspend and resume IO operations in EEH case
Date: Wed, 15 May 2024 16:07:05 -0500 [thread overview]
Message-ID: <20240515210705.620-3-thinhtr@linux.ibm.com> (raw)
In-Reply-To: <20240515210705.620-1-thinhtr@linux.ibm.com>
When EEH events occurs, the callback functions in the i40e, which are
managed by the EEH driver, will completely suspend and resume all IO
operations.
- In the PCI error detected callback, replaced i40e_prep_for_reset()
with i40e_io_suspend(). The change is to fully suspend all I/O
operations
- In the PCI error slot reset callback, replaced pci_enable_device_mem()
with pci_enable_device(). This change enables both I/O and memory of
the device.
- In the PCI error resume callback, replaced i40e_handle_reset_warning()
with i40e_io_resume(). This change allows the system to resume I/O
operations
Fixes: a5f3d2c17b07 ("powerpc/pseries/pci: Add MSI domains")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Robert Thomas <rob.thomas@ibm.com>
Signed-off-by: Thinh Tran <thinhtr@linux.ibm.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 281c8ec27af2..9f71a61e0c52 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -11138,6 +11138,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit,
ret = i40e_reset(pf);
if (!ret)
i40e_rebuild(pf, reinit, lock_acquired);
+ else
+ dev_err(&pf->pdev->dev, "%s: i40e_reset() FAILED", __func__);
}
/**
@@ -16459,7 +16461,7 @@ static pci_ers_result_t i40e_pci_error_detected(struct pci_dev *pdev,
/* shutdown all operations */
if (!test_bit(__I40E_SUSPENDED, pf->state))
- i40e_prep_for_reset(pf);
+ i40e_io_suspend(pf);
/* Request a slot reset */
return PCI_ERS_RESULT_NEED_RESET;
@@ -16481,7 +16483,8 @@ static pci_ers_result_t i40e_pci_error_slot_reset(struct pci_dev *pdev)
u32 reg;
dev_dbg(&pdev->dev, "%s\n", __func__);
- if (pci_enable_device_mem(pdev)) {
+ /* enable I/O and memory of the device */
+ if (pci_enable_device(pdev)) {
dev_info(&pdev->dev,
"Cannot re-enable PCI device after reset.\n");
result = PCI_ERS_RESULT_DISCONNECT;
@@ -16544,7 +16547,7 @@ static void i40e_pci_error_resume(struct pci_dev *pdev)
if (test_bit(__I40E_SUSPENDED, pf->state))
return;
- i40e_handle_reset_warning(pf, false);
+ i40e_io_resume(pf);
}
/**
--
2.25.1
next prev parent reply other threads:[~2024-05-15 21:07 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-15 21:07 [Intel-wired-lan] [PATCH iwl-net V4, 0/2] Fix repeated EEH reports in MSI domain Thinh Tran
2024-05-15 21:07 ` [PATCH iwl-net V4,0/2] " Thinh Tran
2024-05-15 21:07 ` [Intel-wired-lan] [PATCH iwl-net V4, 1/2] i40e: factoring out i40e_suspend/i40e_resume Thinh Tran
2024-05-15 21:07 ` [PATCH iwl-net V4,1/2] " Thinh Tran
2024-05-16 8:50 ` [Intel-wired-lan] [PATCH iwl-net V4, 1/2] " Simon Horman
2024-05-16 8:50 ` [PATCH iwl-net V4,1/2] " Simon Horman
2024-05-16 19:11 ` [Intel-wired-lan] [PATCH iwl-net V4, 1/2] " Jacob Keller
2024-05-16 19:11 ` Jacob Keller
2024-05-16 21:34 ` Thinh Tran
2024-05-16 21:34 ` Thinh Tran
2024-05-23 17:57 ` Pucha, HimasekharX Reddy
2024-05-23 17:57 ` Pucha, HimasekharX Reddy
2024-05-15 21:07 ` Thinh Tran [this message]
2024-05-15 21:07 ` [PATCH iwl-net V4,2/2] i40e: Fully suspend and resume IO operations in EEH case Thinh Tran
2024-05-16 8:51 ` [Intel-wired-lan] [PATCH iwl-net V4, 2/2] " Simon Horman
2024-05-16 8:51 ` [PATCH iwl-net V4,2/2] " Simon Horman
2024-05-23 17:59 ` [Intel-wired-lan] [PATCH iwl-net V4, 2/2] " Pucha, HimasekharX Reddy
2024-05-23 17:59 ` Pucha, HimasekharX Reddy
2025-08-07 4:50 ` Lukas Wunner
2025-08-07 4:50 ` [PATCH iwl-net V4,2/2] " Lukas Wunner
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=20240515210705.620-3-thinhtr@linux.ibm.com \
--to=thinhtr@linux.ibm.com \
--cc=aleksandr.loktionov@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pmenzel@molgen.mpg.de \
--cc=przemyslaw.kitszel@intel.com \
--cc=rob.thomas@ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.