mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
Merge "pci: pci-msm: Prevent double free of default state"
This commit is contained in:
commit
573b7aef75
1 changed files with 19 additions and 6 deletions
|
|
@ -7275,24 +7275,37 @@ static int msm_pcie_pm_suspend(struct pci_dev *dev,
|
|||
|
||||
if (dev) {
|
||||
if (msm_pcie_confirm_linkup(pcie_dev, true, true, dev)) {
|
||||
PCIE_DBG(pcie_dev, "PCIe: RC%d: save config space\n",
|
||||
pcie_dev->rc_idx);
|
||||
ret = pci_save_state(dev);
|
||||
if (ret) {
|
||||
PCIE_ERR(pcie_dev,
|
||||
"PCIe: RC%d: fail to save state of RC%d:%d.\n",
|
||||
"PCIe: RC%d: fail to save state:%d.\n",
|
||||
pcie_dev->rc_idx, ret);
|
||||
pcie_dev->suspending = false;
|
||||
return ret;
|
||||
}
|
||||
|
||||
pcie_dev->saved_state = pci_store_saved_state(dev);
|
||||
} else {
|
||||
pci_load_and_free_saved_state(dev,
|
||||
&pcie_dev->saved_state);
|
||||
pcie_dev->saved_state = pcie_dev->default_state;
|
||||
kfree(pcie_dev->saved_state);
|
||||
pcie_dev->saved_state = NULL;
|
||||
|
||||
PCIE_DBG(pcie_dev,
|
||||
"PCIe: RC%d: saved default config space\n",
|
||||
"PCIe: RC%d: load default config space\n",
|
||||
pcie_dev->rc_idx);
|
||||
ret = pci_load_saved_state(dev, pcie_dev->default_state);
|
||||
if (ret) {
|
||||
PCIE_ERR(pcie_dev,
|
||||
"PCIe: RC%d: fail to load default state:%d.\n",
|
||||
pcie_dev->rc_idx, ret);
|
||||
pcie_dev->suspending = false;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
PCIE_DBG(pcie_dev, "PCIe: RC%d: store saved state\n",
|
||||
pcie_dev->rc_idx);
|
||||
pcie_dev->saved_state = pci_store_saved_state(dev);
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&pcie_dev->cfg_lock,
|
||||
|
|
|
|||
Loading…
Reference in a new issue