diff --git a/core/pld/src/pld_pcie.c b/core/pld/src/pld_pcie.c index 2b918b8c0c31..84175cda1964 100644 --- a/core/pld/src/pld_pcie.c +++ b/core/pld/src/pld_pcie.c @@ -109,6 +109,8 @@ static void pld_pcie_remove(struct pci_dev *pdev) if (!pld_context) return; + pld_context->ops->remove(&pdev->dev, PLD_BUS_TYPE_PCIE); + spin_lock_irqsave(&pld_context->pld_lock, flags); list_for_each_entry_safe(dev_node, tmp, &pld_context->dev_list, list) { if (dev_node->dev == &pdev->dev) { @@ -117,8 +119,6 @@ static void pld_pcie_remove(struct pci_dev *pdev) } } spin_unlock_irqrestore(&pld_context->pld_lock, flags); - - pld_context->ops->remove(&pdev->dev, PLD_BUS_TYPE_PCIE); } #ifdef CONFIG_CNSS diff --git a/core/pld/src/pld_snoc.c b/core/pld/src/pld_snoc.c index 40cee705ea9d..b2d0446a2796 100644 --- a/core/pld/src/pld_snoc.c +++ b/core/pld/src/pld_snoc.c @@ -99,6 +99,8 @@ static void pld_snoc_remove(struct device *dev) if (!pld_context) return; + pld_context->ops->remove(dev, PLD_BUS_TYPE_SNOC); + spin_lock_irqsave(&pld_context->pld_lock, flags); list_for_each_entry_safe(dev_node, tmp, &pld_context->dev_list, list) { if (dev_node->dev == dev) { @@ -107,8 +109,6 @@ static void pld_snoc_remove(struct device *dev) } } spin_unlock_irqrestore(&pld_context->pld_lock, flags); - - pld_context->ops->remove(dev, PLD_BUS_TYPE_SNOC); } /**