linux-yocto/drivers/pci/endpoint
Zijun Hu 97bc165a06 PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
commit 3b9f942eb2 upstream.

When removing a virtual Endpoint, pci_epf_remove_vepf() failed to clear
epf_vf->epf_pf, which caused a subsequent pci_epf_add_vepf() to incorrectly
return -EBUSY:

  pci_epf_add_vepf(epf_pf, epf_vf)      // add
  pci_epf_remove_vepf(epf_pf, epf_vf)   // remove
  pci_epf_add_vepf(epf_pf, epf_vf)      // add again, -EBUSY error

Fix by clearing epf_vf->epf_pf in pci_epf_remove_vepf().

Link: https://lore.kernel.org/r/20241210-pci-epc-core_fix-v3-3-4d86dd573e4b@quicinc.com
Fixes: 1cf362e907 ("PCI: endpoint: Add support to add virtual function in endpoint core")
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-02-17 09:40:26 +01:00
..
functions PCI: endpoint: pci-epf-test: Fix check for DMA MEMCPY test 2025-02-08 09:52:26 +01:00
Kconfig
Makefile
pci-ep-cfs.c
pci-epc-core.c PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy() 2025-02-08 09:52:23 +01:00
pci-epc-mem.c
pci-epf-core.c PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf() 2025-02-17 09:40:26 +01:00