From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>,
netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
Andrew Bowers <andrewx.bowers@intel.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 06/15] ice: Only disable VF state when freeing each VF resources
Date: Wed, 20 Nov 2019 23:46:03 -0800 [thread overview]
Message-ID: <20191121074612.3055661-7-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <20191121074612.3055661-1-jeffrey.t.kirsher@intel.com>
From: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
It is wrong to set PF disable state flag for all VFs when freeing VF
resources - Instead, we should set VF disable state flag for each VF with
its resources being returned to the device. Right now, all VF opcodes,
mailbox communication to clear its resources as well fails - since we
already indicate that PF is in disable state, with all VFs not active. In
addition, we don't need to notify VF that PF is intending to reset it, if
it is already in disabled state.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
index f8d26674cf5a..869111a45d61 100644
--- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
@@ -318,8 +318,9 @@ void ice_free_vfs(struct ice_pf *pf)
pf->num_alloc_vfs = 0;
for (i = 0; i < tmp; i++) {
if (test_bit(ICE_VF_STATE_INIT, pf->vf[i].vf_states)) {
- /* disable VF qp mappings */
+ /* disable VF qp mappings and set VF disable state */
ice_dis_vf_mappings(&pf->vf[i]);
+ set_bit(ICE_VF_STATE_DIS, pf->vf[i].vf_states);
ice_free_vf_res(&pf->vf[i]);
}
}
@@ -1303,9 +1304,12 @@ static void ice_vc_notify_vf_reset(struct ice_vf *vf)
if (!vf || vf->vf_id >= vf->pf->num_alloc_vfs)
return;
- /* verify if the VF is in either init or active before proceeding */
- if (!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
- !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states))
+ /* Bail out if VF is in disabled state, neither initialized, nor active
+ * state - otherwise proceed with notifications
+ */
+ if ((!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
+ !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) ||
+ test_bit(ICE_VF_STATE_DIS, vf->vf_states))
return;
pfe.event = VIRTCHNL_EVENT_RESET_IMPENDING;
--
2.23.0
next prev parent reply other threads:[~2019-11-21 7:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-21 7:45 [net-next 00/15][pull request] 100GbE Intel Wired LAN Driver Updates 2019-11-20 Jeff Kirsher
2019-11-21 7:45 ` [net-next 01/15] ice: Store number of functions for the device Jeff Kirsher
2019-11-21 7:45 ` [net-next 02/15] ice: Correct capabilities reporting of max TCs Jeff Kirsher
2019-11-21 7:46 ` [net-next 03/15] ice: Disallow VF VLAN opcodes if VLAN offloads disabled Jeff Kirsher
2019-11-21 7:46 ` [net-next 04/15] ice: Don't modify stripping for add/del VLANs on VF Jeff Kirsher
2019-11-21 7:46 ` [net-next 05/15] ice: fix stack leakage Jeff Kirsher
2019-11-21 22:25 ` Jakub Kicinski
2019-11-21 22:37 ` David Miller
2019-11-21 23:07 ` Jeff Kirsher
2019-11-21 7:46 ` Jeff Kirsher [this message]
2019-11-21 7:46 ` [net-next 07/15] ice: Fix setting coalesce to handle DCB configuration Jeff Kirsher
2019-11-21 7:46 ` [net-next 08/15] ice: Refactor removal of VLAN promiscuous rules Jeff Kirsher
2019-11-21 7:46 ` [net-next 09/15] ice: Do not use devm* functions for local uses Jeff Kirsher
2019-11-21 7:46 ` [net-next 10/15] ice: Add ice_pf_to_dev(pf) macro Jeff Kirsher
2019-11-21 7:46 ` [net-next 11/15] ice: add helpers for virtchnl Jeff Kirsher
2019-11-21 7:46 ` [net-next 12/15] ice: implement VF stats NDO Jeff Kirsher
2019-11-21 7:46 ` [net-next 13/15] ice: Implement ethtool ops for channels Jeff Kirsher
2019-11-21 22:42 ` Jakub Kicinski
2019-11-22 7:09 ` Jeff Kirsher
2019-11-22 17:44 ` Jakub Kicinski
2019-11-21 7:46 ` [net-next 14/15] ice: remove pointless NULL check of port_info Jeff Kirsher
2019-11-21 7:46 ` [net-next 15/15] ice: Update FW API minor version 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=20191121074612.3055661-7-jeffrey.t.kirsher@intel.com \
--to=jeffrey.t.kirsher@intel.com \
--cc=akeem.g.abodunrin@intel.com \
--cc=andrewx.bowers@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