mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
PCI: Fix BAR resize rollback path overwriting ret
The commit337b1b566d("PCI: Fix restoring BARs on BAR resize rollback path") added BAR rollback to pci_do_resource_release_and_resize() in case of resize failure. On the rollback, pci_claim_resource() is called, which can fail and the code is prepared for that possibility. pci_claim_resource()'s return value, however, overwrites the original value of ret so pci_do_resource_release_and_resize() will return an incorrect value in the end (as pci_claim_resource() normally succeeds, in practice ret will be 0). Fix the issue by directly calling pci_claim_resource() inside the if (). Fixes:337b1b566d("PCI: Fix restoring BARs on BAR resize rollback path") Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://lore.kernel.org/linux-pci/aW_w1oFQCzUxGYtu@intel.com/ Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: stable@vger.kernel.org Link: https://patch.msgid.link/20260121131417.9582-2-ilpo.jarvinen@linux.intel.com
This commit is contained in:
parent
8f0b4cce44
commit
08d9eae76b
1 changed files with 1 additions and 2 deletions
|
|
@ -2556,8 +2556,7 @@ restore:
|
|||
|
||||
restore_dev_resource(dev_res);
|
||||
|
||||
ret = pci_claim_resource(dev, i);
|
||||
if (ret)
|
||||
if (pci_claim_resource(dev, i))
|
||||
continue;
|
||||
|
||||
if (i < PCI_BRIDGE_RESOURCES) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue