Re: [PATCH v2] x86/ioremap: Use is_ioremap_addr() in iounmap()

From: Thomas Gleixner
Date: Mon Aug 12 2024 - 17:14:06 EST


On Mon, Aug 12 2024 at 23:35, Max Ramanouski wrote:
> On systems that use HMM (most notably amdgpu driver) high_memory
> can jump over VMALLOC_START due to pages at the end of physical
> space being added with add_pages(), while gap for new pages left
> by KASLR is as small as 10TB. This results in early exit from
> iounmap() leading to leaking, and additional problems with rebinding
> devices to vfio_pci from other drivers with error of conflicting
> memtypes, as memtypes aren't freed in iounmap().
>
> Replace comparison against high_memory with is_ioremap_addr() to
> fix the issue and make x86 iounmap() implementation more similar
> to generic one, it also uses is_ioremap_addr() to validate pointer.
>
> Fixes: 41e94a851304 ("add devm_memremap_pages")

This fixes absolutely nothing as we discussed already. The underlying
problem is that high_memory can spill over into the VMALLOC area.

Seriously?

Thanks,

tglx