From: Alexander Duyck <alexander.duyck@gmail.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [jkirsher/next-queue PATCH 02/16] ixgbe: Perform reinit any time number of VFs change
Date: Wed, 22 Nov 2017 10:56:22 -0800 [thread overview]
Message-ID: <20171122185622.29785.67698.stgit@localhost.localdomain> (raw)
In-Reply-To: <20171122185256.29785.93548.stgit@localhost.localdomain>
From: Alexander Duyck <alexander.h.duyck@intel.com>
If the number of VFs are changed we need to reinitialize the part since the
offset for the device and the number of pools will be incorrect. Without
this change we can end up seeing Tx hangs and dropped Rx frames for
incoming traffic.
In addition we should drop the code that is arbitrarily changing the
default pool and queue configuration. Instead we should wait until the port
is reset and reconfigured via ixgbe_sriov_reinit.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 19 +++----------------
1 file changed, 3 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 112d24c6c9ce..15d89258fbc3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -227,9 +227,6 @@ void ixgbe_enable_sriov(struct ixgbe_adapter *adapter, unsigned int max_vfs)
int ixgbe_disable_sriov(struct ixgbe_adapter *adapter)
{
unsigned int num_vfs = adapter->num_vfs, vf;
- struct ixgbe_hw *hw = &adapter->hw;
- u32 gpie;
- u32 vmdctl;
int rss;
/* set num VFs to 0 to prevent access to vfinfo */
@@ -271,18 +268,6 @@ int ixgbe_disable_sriov(struct ixgbe_adapter *adapter)
pci_disable_sriov(adapter->pdev);
#endif
- /* turn off device IOV mode */
- IXGBE_WRITE_REG(hw, IXGBE_GCR_EXT, 0);
- gpie = IXGBE_READ_REG(hw, IXGBE_GPIE);
- gpie &= ~IXGBE_GPIE_VTMODE_MASK;
- IXGBE_WRITE_REG(hw, IXGBE_GPIE, gpie);
-
- /* set default pool back to 0 */
- vmdctl = IXGBE_READ_REG(hw, IXGBE_VT_CTL);
- vmdctl &= ~IXGBE_VT_CTL_POOL_MASK;
- IXGBE_WRITE_REG(hw, IXGBE_VT_CTL, vmdctl);
- IXGBE_WRITE_FLUSH(hw);
-
/* Disable VMDq flag so device will be set in VM mode */
if (adapter->ring_feature[RING_F_VMDQ].limit == 1) {
adapter->flags &= ~IXGBE_FLAG_VMDQ_ENABLED;
@@ -378,13 +363,15 @@ static int ixgbe_pci_sriov_disable(struct pci_dev *dev)
int err;
#ifdef CONFIG_PCI_IOV
u32 current_flags = adapter->flags;
+ int prev_num_vf = pci_num_vf(dev);
#endif
err = ixgbe_disable_sriov(adapter);
/* Only reinit if no error and state changed */
#ifdef CONFIG_PCI_IOV
- if (!err && current_flags != adapter->flags)
+ if (!err && (current_flags != adapter->flags ||
+ prev_num_vf != pci_num_vf(dev)))
ixgbe_sriov_reinit(adapter);
#endif
next prev parent reply other threads:[~2017-11-22 18:56 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-22 18:56 [Intel-wired-lan] [jkirsher/next-queue PATCH 00/16] ixgbe/fm10k: macvlan fixes Alexander Duyck
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 01/16] ixgbe: Fix interaction between SR-IOV and macvlan offload Alexander Duyck
2017-11-29 16:40 ` Bowers, AndrewX
2017-11-22 18:56 ` Alexander Duyck [this message]
2017-11-29 17:00 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 02/16] ixgbe: Perform reinit any time number of VFs change Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 03/16] ixgbe: Add support for macvlan offload RSS on X550 and clean-up pool handling Alexander Duyck
2017-11-29 17:01 ` Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 04/16] ixgbe: There is no need to update num_rx_pools in L2 fwd offload Alexander Duyck
2017-11-29 17:02 ` Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 05/16] ixgbe: Fix limitations on macvlan so we can support up to 63 offloaded devices Alexander Duyck
2017-11-29 17:03 ` Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 06/16] ixgbe: Use ring values to test for Tx pending Alexander Duyck
2017-11-29 17:04 ` Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 07/16] ixgbe: Drop l2_accel_priv data pointer from ring struct Alexander Duyck
2017-11-29 17:04 ` Bowers, AndrewX
2017-11-22 18:56 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 08/16] ixgbe: Assume provided MAC filter has been verified by macvlan Alexander Duyck
2017-11-29 17:06 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 09/16] ixgbe: Default to 1 pool always being allocated Alexander Duyck
2017-11-29 17:07 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 10/16] ixgbe: Don't assume dev->num_tc is equal to hardware TC config Alexander Duyck
2017-11-29 17:08 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 11/16] ixgbe/fm10k: Record macvlan stats instead of Rx queue for macvlan offloaded rings Alexander Duyck
2017-11-29 17:08 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 12/16] ixgbe: Do not manipulate macvlan Tx queues when performing macvlan offload Alexander Duyck
2017-11-29 17:09 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 13/16] ixgbe: avoid bringing rings up/down as macvlans are added/removed Alexander Duyck
2017-11-29 17:09 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 14/16] ixgbe: Fix handling of macvlan Tx offload Alexander Duyck
2017-11-29 17:10 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 15/16] net: Cap number of queues even with accel_priv Alexander Duyck
2017-11-29 17:11 ` Bowers, AndrewX
2017-11-22 18:57 ` [Intel-wired-lan] [jkirsher/next-queue PATCH 16/16] fm10k: Fix configuration for macvlan offload Alexander Duyck
2018-01-09 20:40 ` Singh, Krishneil K
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=20171122185622.29785.67698.stgit@localhost.localdomain \
--to=alexander.duyck@gmail.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