Message ID | 20230113031921.64716-7-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:20AM +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 io mapping in ioremap_phb() of ppc, we should set VM_IOREMAP > in flag to make it handled correctly as above. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > arch/powerpc/kernel/pci_64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c > index 0c7cfb9fab04..fd42059ae2a5 100644 > --- a/arch/powerpc/kernel/pci_64.c > +++ b/arch/powerpc/kernel/pci_64.c > @@ -132,7 +132,7 @@ void __iomem *ioremap_phb(phys_addr_t paddr, unsigned long size) > * address decoding but I'd rather not deal with those outside of the > * reserved 64K legacy region. > */ > - area = __get_vm_area_caller(size, 0, PHB_IO_BASE, PHB_IO_END, > + area = __get_vm_area_caller(size, VM_IOREMAP, PHB_IO_BASE, PHB_IO_END, > __builtin_return_address(0)); > if (!area) > return NULL; > -- > 2.34.1 > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> -- Uladzislau Rezki
On Fri, Jan 13, 2023 at 11:19:20AM +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 io mapping in ioremap_phb() of ppc, we should set VM_IOREMAP > in flag to make it handled correctly as above. > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > arch/powerpc/kernel/pci_64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c > index 0c7cfb9fab04..fd42059ae2a5 100644 > --- a/arch/powerpc/kernel/pci_64.c > +++ b/arch/powerpc/kernel/pci_64.c > @@ -132,7 +132,7 @@ void __iomem *ioremap_phb(phys_addr_t paddr, unsigned long size) > * address decoding but I'd rather not deal with those outside of the > * reserved 64K legacy region. > */ > - area = __get_vm_area_caller(size, 0, PHB_IO_BASE, PHB_IO_END, > + area = __get_vm_area_caller(size, VM_IOREMAP, PHB_IO_BASE, PHB_IO_END, > __builtin_return_address(0)); > if (!area) > return NULL; > -- > 2.34.1 > Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 0c7cfb9fab04..fd42059ae2a5 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c @@ -132,7 +132,7 @@ void __iomem *ioremap_phb(phys_addr_t paddr, unsigned long size) * address decoding but I'd rather not deal with those outside of the * reserved 64K legacy region. */ - area = __get_vm_area_caller(size, 0, PHB_IO_BASE, PHB_IO_END, + area = __get_vm_area_caller(size, VM_IOREMAP, PHB_IO_BASE, PHB_IO_END, __builtin_return_address(0)); if (!area) return NULL;
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 io mapping in ioremap_phb() of ppc, we should set VM_IOREMAP in flag to make it handled correctly as above. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/powerpc/kernel/pci_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)