Re: [RFC PATCH 3/4] powerpc: drop redundant unmaps of failed vmap mappings
From: Suren Baghdasaryan
Date: Tue Oct 13 2026 - 08:23:41 EST
On Fri, Oct 9, 2026 at 10:36 AM Hao Ge <hao.ge@xxxxxxxxx> wrote:
>
> 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 <hao.ge@xxxxxxxxx>
Reviewed-by: Suren Baghdasaryan <surenb@xxxxxxxxxx>
> ---
> 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
>