Message ID | 20230113031921.64716-8-bhe@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/vmalloc.c: allow vread() to read out vm_map_ram areas | expand |
On Fri, Jan 13, 2023 at 11:19:21AM +0800, Baoquan He wrote: > 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. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > arch/sh/kernel/cpu/sh4/sq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c > index a76b94e41e91..27f2e3da5aa2 100644 > --- a/arch/sh/kernel/cpu/sh4/sq.c > +++ b/arch/sh/kernel/cpu/sh4/sq.c > @@ -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; > -- > 2.34.1 > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> -- Uladzislau Rezki
On Fri, Jan 13, 2023 at 11:19:21AM +0800, Baoquan He wrote: > 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. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > arch/sh/kernel/cpu/sh4/sq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c > index a76b94e41e91..27f2e3da5aa2 100644 > --- a/arch/sh/kernel/cpu/sh4/sq.c > +++ b/arch/sh/kernel/cpu/sh4/sq.c > @@ -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; > -- > 2.34.1 > Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index a76b94e41e91..27f2e3da5aa2 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c @@ -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;
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. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/sh/kernel/cpu/sh4/sq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)