diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2023-11-21 21:36:42 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2023-12-05 19:56:59 +0300 |
commit | f12659832612dac746bd57e20956aabb373a00e7 (patch) | |
tree | 52b8a6033d22e35bb28bf634b357a33e15679940 /arch/x86/pci/mmconfig-shared.c | |
parent | f284dff47b6d00efe1f774d25e9d74874e78c600 (diff) | |
download | linux-f12659832612dac746bd57e20956aabb373a00e7.tar.xz |
x86/pci: Return pci_mmconfig_add() failure early
If pci_mmconfig_alloc() fails, return the failure early so it's obvious
that the failure is the exception, and the success is the normal case. No
functional change intended.
Link: https://lore.kernel.org/r/20231121183643.249006-9-helgaas@kernel.org
Tested-by: Tomasz Pala <gotar@polanet.pl>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'arch/x86/pci/mmconfig-shared.c')
-rw-r--r-- | arch/x86/pci/mmconfig-shared.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c index 459e95782bb1..0cc9520666ef 100644 --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c @@ -102,14 +102,15 @@ struct pci_mmcfg_region *__init pci_mmconfig_add(int segment, int start, struct pci_mmcfg_region *new; new = pci_mmconfig_alloc(segment, start, end, addr); - if (new) { - mutex_lock(&pci_mmcfg_lock); - list_add_sorted(new); - mutex_unlock(&pci_mmcfg_lock); + if (!new) + return NULL; - pr_info("ECAM %pR (base %#lx) for domain %04x [bus %02x-%02x]\n", - &new->res, (unsigned long)addr, segment, start, end); - } + mutex_lock(&pci_mmcfg_lock); + list_add_sorted(new); + mutex_unlock(&pci_mmcfg_lock); + + pr_info("ECAM %pR (base %#lx) for domain %04x [bus %02x-%02x]\n", + &new->res, (unsigned long)addr, segment, start, end); return new; } |