PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
commit 3b9f942e 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: 1cf362e9 ("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>
Loading