qcacld-3.0: Fix error of invalid dev type when unloading wlan

PLD deletes dev node before calling HDD remove callback functions.
It causes an error of reporting invalid dev type when a platform
API is called within remove callback function. Deleting dev node
after remove callback being called will fix the issue.

CRs-Fixed: 1020538
Change-Id: I3df5810c20a5965b908f15d4182e9b927e033afc
This commit is contained in:
Yuanyuan Liu 2016-05-24 17:15:43 -07:00 • committed by Gerrit - the friendly Code Review server
commit 960fa2145c
2 changed files with 4 additions and 4 deletions

View file

@ -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

View file

@ -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);
}
/**