sh: mm: set VM_IOREMAP flag to the vmalloc area
authorBaoquan He <bhe@redhat.com>
Mon, 6 Feb 2023 08:40:20 +0000 (16:40 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 10 Feb 2023 00:51:43 +0000 (16:51 -0800)
Currently, for vmalloc areas with flag VM_IOREMAP set, except of the
specific alignment clamping in __get_vm_area_node(), they will be

1) Shown as ioremap in /proc/vmallocinfo;

2) Ignored by /proc/kcore reading via vread()

So for the ioremap in __sq_remap() of sh, we should set VM_IOREMAP in flag
to make it handled correctly as above.

Link: https://lkml.kernel.org/r/20230206084020.174506-8-bhe@redhat.com
Signed-off-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Dan Carpenter <error27@gmail.com>
Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/sh/kernel/cpu/sh4/sq.c

index a76b94e..27f2e3d 100644 (file)
@@ -103,7 +103,7 @@ static int __sq_remap(struct sq_mapping *map, pgprot_t prot)
 #if defined(CONFIG_MMU)
        struct vm_struct *vma;
 
-       vma = __get_vm_area_caller(map->size, VM_ALLOC, map->sq_addr,
+       vma = __get_vm_area_caller(map->size, VM_IOREMAP, map->sq_addr,
                        SQ_ADDRMAX, __builtin_return_address(0));
        if (!vma)
                return -ENOMEM;