vmap_page_range() and ioremap_page_range() clear the PTEs they
installed when they fail, so the vunmap_range() in remap_isa_base()
and ioremap_phb() has nothing left to remove.

Signed-off-by: Hao Ge <[email protected]>
---
 arch/powerpc/kernel/isa-bridge.c | 5 ++---
 arch/powerpc/kernel/pci_64.c     | 4 +---
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/kernel/isa-bridge.c b/arch/powerpc/kernel/isa-bridge.c
index 5c064485197a..93029d85e6ea 100644
--- a/arch/powerpc/kernel/isa-bridge.c
+++ b/arch/powerpc/kernel/isa-bridge.c
@@ -46,9 +46,8 @@ static void remap_isa_base(phys_addr_t pa, unsigned long size)
        WARN_ON_ONCE(size & ~PAGE_MASK);
 
        if (slab_is_available()) {
-               if (vmap_page_range(ISA_IO_BASE, ISA_IO_BASE + size, pa,
-                                   pgprot_noncached(PAGE_KERNEL)))
-                       vunmap_range(ISA_IO_BASE, ISA_IO_BASE + size);
+               vmap_page_range(ISA_IO_BASE, ISA_IO_BASE + size, pa,
+                               pgprot_noncached(PAGE_KERNEL));
        } else {
                early_ioremap_range(ISA_IO_BASE, pa, size,
                                pgprot_noncached(PAGE_KERNEL));
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index e27342ef128b..f74269636d5e 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -139,10 +139,8 @@ void __iomem *ioremap_phb(phys_addr_t paddr, unsigned long 
size)
 
        addr = (unsigned long)area->addr;
        if (ioremap_page_range(addr, addr + size, paddr,
-                       pgprot_noncached(PAGE_KERNEL))) {
-               vunmap_range(addr, addr + size);
+                       pgprot_noncached(PAGE_KERNEL)))
                return NULL;
-       }
 
        return (void __iomem *)addr;
 }
-- 
2.25.1


Reply via email to