Re: [PATCH v5 RESEND 14/17] mm/ioremap: Consider IOREMAP space in generic ioremap

From: Christoph Hellwig
Date: Wed May 17 2023 - 02:41:35 EST


On Mon, May 15, 2023 at 05:08:45PM +0800, Baoquan He wrote:
> @@ -35,8 +35,13 @@ void __iomem *generic_ioremap_prot(phys_addr_t phys_addr, size_t size,
> if (!ioremap_allowed(phys_addr, size, pgprot_val(prot)))
> return NULL;
>
> +#ifdef IOREMAP_START
> + area = __get_vm_area_caller(size, VM_IOREMAP, IOREMAP_START,
> + IOREMAP_END, __builtin_return_address(0));
> +#else
> area = get_vm_area_caller(size, VM_IOREMAP,
> __builtin_return_address(0));
> +#endif

I think this would be cleaner if we'd just always use
__get_vm_area_caller and at the top of the file add a:

#ifndef IOREMAP_START
#define IOREMAP_START VMALLOC_START
#define IOREMAP_END VMALLOC_END
#endif

Together with a little comment that ioremap often, but not always
uses the generic vmalloc area.