Netdev Archive on lore.kernel.org help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Íñigo Huguet" <ihuguet@redhat.com>, "David S . Miller" <davem@davemloft.net>, "Sasha Levin" <sashal@kernel.org>, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 45/55] sfc: error code if SRIOV cannot be disabled Date: Tue, 6 Jul 2021 07:26:28 -0400 [thread overview] Message-ID: <20210706112638.2065023-45-sashal@kernel.org> (raw) In-Reply-To: <20210706112638.2065023-1-sashal@kernel.org> From: Íñigo Huguet <ihuguet@redhat.com> [ Upstream commit 1ebe4feb8b442884f5a28d2437040096723dd1ea ] If SRIOV cannot be disabled during device removal or module unloading, return error code so it can be logged properly in the calling function. Note that this can only happen if any VF is currently attached to a guest using Xen, but not with vfio/KVM. Despite that in that case the VFs won't work properly with PF removed and/or the module unloaded, I have let it as is because I don't know what side effects may have changing it, and also it seems to be the same that other drivers are doing in this situation. In the case of being called during SRIOV reconfiguration, the behavior hasn't changed because the function is called with force=false. Signed-off-by: Íñigo Huguet <ihuguet@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org> --- drivers/net/ethernet/sfc/ef10_sriov.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/sfc/ef10_sriov.c b/drivers/net/ethernet/sfc/ef10_sriov.c index edd5ae855886..f074986a13b1 100644 --- a/drivers/net/ethernet/sfc/ef10_sriov.c +++ b/drivers/net/ethernet/sfc/ef10_sriov.c @@ -406,12 +406,17 @@ static int efx_ef10_pci_sriov_enable(struct efx_nic *efx, int num_vfs) return rc; } +/* Disable SRIOV and remove VFs + * If some VFs are attached to a guest (using Xen, only) nothing is + * done if force=false, and vports are freed if force=true (for the non + * attachedc ones, only) but SRIOV is not disabled and VFs are not + * removed in either case. + */ static int efx_ef10_pci_sriov_disable(struct efx_nic *efx, bool force) { struct pci_dev *dev = efx->pci_dev; - unsigned int vfs_assigned = 0; - - vfs_assigned = pci_vfs_assigned(dev); + unsigned int vfs_assigned = pci_vfs_assigned(dev); + int rc = 0; if (vfs_assigned && !force) { netif_info(efx, drv, efx->net_dev, "VFs are assigned to guests; " @@ -421,10 +426,12 @@ static int efx_ef10_pci_sriov_disable(struct efx_nic *efx, bool force) if (!vfs_assigned) pci_disable_sriov(dev); + else + rc = -EBUSY; efx_ef10_sriov_free_vf_vswitching(efx); efx->vf_count = 0; - return 0; + return rc; } int efx_ef10_sriov_configure(struct efx_nic *efx, int num_vfs) -- 2.30.2
next prev parent reply other threads:[~2021-07-06 11:40 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20210706112638.2065023-1-sashal@kernel.org> 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 05/55] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() Sasha Levin 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 08/55] atm: iphase: fix possible use-after-free in ia_module_exit() Sasha Levin 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 09/55] mISDN: fix possible use-after-free in HFC_cleanup() Sasha Levin 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 10/55] atm: nicstar: Fix possible use-after-free in nicstar_cleanup() Sasha Levin 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 11/55] net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT Sasha Levin 2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 16/55] e100: handle eeprom as little endian Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 19/55] ipv6: use prandom_u32() for ID generation Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 23/55] ice: set the value of global config lock timeout longer Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 24/55] virtio_net: Remove BUG() to avoid machine dead Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 25/55] net: bcmgenet: check return value after calling platform_get_resource() Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 26/55] net: mvpp2: " Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 27/55] net: micrel: " Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 28/55] net: moxa: Use devm_platform_get_and_ioremap_resource() Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 29/55] fjes: check return value after calling platform_get_resource() Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 31/55] xfrm: Fix error reporting in xfrm_state_construct Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 32/55] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 33/55] wl1251: Fix possible buffer overflow in wl1251_cmd_scan Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 34/55] cw1200: add missing MODULE_DEVICE_TABLE Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 36/55] rtl8xxxu: Fix device info for RTL8192EU devices Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 38/55] atm: nicstar: use 'dma_free_coherent' instead of 'kfree' Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 39/55] atm: nicstar: register the interrupt handler in the right place Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 40/55] vsock: notify server to shutdown when client has pending signal Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 42/55] iwlwifi: mvm: don't change band on bound PHY contexts Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 43/55] iwlwifi: pcie: free IML DMA memory allocation Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 44/55] sfc: avoid double pci_remove of VFs Sasha Levin 2021-07-06 11:26 ` Sasha Levin [this message] 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 46/55] wireless: wext-spy: Fix out-of-bounds warning Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 47/55] media, bpf: Do not copy more entries than user space requested Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 48/55] net: ip: avoid OOM kills with large UDP sends over loopback Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 50/55] Bluetooth: Fix the HCI to MGMT status conversion table Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 51/55] Bluetooth: Shutdown controller after workqueues are flushed or cancelled Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 53/55] sctp: validate from_addr_param return Sasha Levin 2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 54/55] sctp: add size validation when walking chunks Sasha Levin
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=20210706112638.2065023-45-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=davem@davemloft.net \ --cc=ihuguet@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=stable@vger.kernel.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: linkBe 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).