Re: [PATCH v5 RESEND 06/17] mm/ioremap: add slab availability checking in ioremap_prot

From: Mike Rapoport
Date: Tue May 16 2023 - 02:48:51 EST


On Mon, May 15, 2023 at 05:08:37PM +0800, Baoquan He wrote:
> Several architectures has done checking if slab if available in
> ioremap_prot(). In fact it should be done in generic ioremap_prot()
> since on any architecutre, slab allocator must be available before
> get_vm_area_caller() and vunmap() are used.
>
> Add the checking into generic_ioremap_prot().
>
> Suggested-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
> Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>

Reviewed-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx>

> ---
> mm/ioremap.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/mm/ioremap.c b/mm/ioremap.c
> index 9f34a8f90b58..2fbe6b9bc50e 100644
> --- a/mm/ioremap.c
> +++ b/mm/ioremap.c
> @@ -18,6 +18,10 @@ void __iomem *generic_ioremap_prot(phys_addr_t phys_addr, size_t size,
> phys_addr_t last_addr;
> struct vm_struct *area;
>
> + /* An early platform driver might end up here */
> + if (!slab_is_available())
> + return NULL;
> +
> /* Disallow wrap-around or zero size */
> last_addr = phys_addr + size - 1;
> if (!size || last_addr < phys_addr)
> --
> 2.34.1
>
>

--
Sincerely yours,
Mike.