From: Alice Michael <alice.michael@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [next PATCH S8 07/12] i40e: Fix crash caused by stress setting of VF MAC addresses
Date: Tue, 23 Jul 2019 06:03:40 -0400 [thread overview]
Message-ID: <20190723100345.57522-7-alice.michael@intel.com> (raw)
In-Reply-To: <20190723100345.57522-1-alice.michael@intel.com>
From: Slawomir Laba <slawomirx.laba@intel.com>
Add update to the vsi pointer passed to the i40e_set_vf_mac function.
If VF is in reset state the driver waits in i40e_set_vf_mac function
for the reset to be complete, yet after reset the vsi pointer
that was passed into this function is no longer valid.
The patch updates local vsi pointer directly from pf->vsi array,
by using the id stored in vf pointer (lan_vsi_idx).
Without this commit the driver might occasionally invoke general
protection fault in kernel and disable the OS entirely.
Signed-off-by: Slawomir Laba <slawomirx.laba@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 7bc4e397d56d..eeb37d83efc9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -3970,10 +3970,15 @@ int i40e_ndo_set_vf_mac(struct net_device *netdev, int vf_id, u8 *mac)
/* When the VF is resetting wait until it is done.
* It can take up to 200 milliseconds,
* but wait for up to 300 milliseconds to be safe.
+ * If the VF is indeed in reset, the vsi pointer has
+ * to show on the newly loaded vsi under pf->vsi[id].
*/
for (i = 0; i < 15; i++) {
- if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states))
+ if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
+ if (i > 0)
+ vsi = pf->vsi[vf->lan_vsi_idx];
break;
+ }
msleep(20);
}
if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
--
2.21.0
next prev parent reply other threads:[~2019-07-23 10:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 10:03 [Intel-wired-lan] [next PATCH S8 01/12] i40e: fix shifts of signed values Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 02/12] i40e: Add drop mode parameter to set mac config Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 03/12] i40e: check_recovery_mode had wrong if statement Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 04/12] i40e: Update FVL FW API version to 1.9 Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 05/12] i40e: reset veb.tc_stats when resetting veb.stats Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 06/12] i40e: Update FPK FW API version to 1.9 Alice Michael
2019-07-23 10:03 ` Alice Michael [this message]
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 08/12] i40e: Remove function i40e_update_dcb_config() Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 09/12] i40e: make i40e_set_mac_type() public Alice Michael
2019-07-26 6:42 ` Kwapulinski, Piotr
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 10/12] i40e: allow reset in recovery mode Alice Michael
2019-07-26 6:41 ` Kwapulinski, Piotr
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 11/12] i40e: Persistent lldp support Alice Michael
2019-07-23 10:03 ` [Intel-wired-lan] [next PATCH S8 12/12] i40e: fix retrying in i40e_aq_get_phy_capabilities Alice Michael
2019-07-24 6:16 ` Formela, Marcin
2019-07-26 21:44 ` [Intel-wired-lan] [next PATCH S8 01/12] i40e: fix shifts of signed values Bowers, AndrewX
-- strict thread matches above, loose matches on Subject: below --
2019-07-23 10:01 Alice Michael
2019-07-23 10:01 ` [Intel-wired-lan] [next PATCH S8 07/12] i40e: Fix crash caused by stress setting of VF MAC addresses Alice Michael
2019-07-26 21:47 ` Bowers, AndrewX
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=20190723100345.57522-7-alice.michael@intel.com \
--to=alice.michael@intel.com \
--cc=intel-wired-lan@osuosl.org \
/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