Messages in this thread | | | Date | Thu, 28 Apr 2022 09:40:37 +0800 | Subject | Re: [PATCH 1/4] mm: ioremap: Setup phys_addr of struct vm_struct | From | Kefeng Wang <> |
| |
On 2022/4/28 1:10, Andrew Morton wrote: > On Wed, 27 Apr 2022 20:14:10 +0800 Kefeng Wang <wangkefeng.wang@huawei.com> wrote: > >> Show physical address in /proc/vmallocinfo. >> >> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> >> --- >> mm/ioremap.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/mm/ioremap.c b/mm/ioremap.c >> index 5fe598ecd9b7..522ef899c35f 100644 >> --- a/mm/ioremap.c >> +++ b/mm/ioremap.c >> @@ -32,6 +32,7 @@ void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot) >> if (!area) >> return NULL; >> vaddr = (unsigned long)area->addr; >> + area->phys_addr = addr; >> >> if (ioremap_page_range(vaddr, vaddr + size, addr, __pgprot(prot))) { >> free_vm_area(area); > Acked-by: Andrew Morton <akpm@linux-foundation.org> > > I checked a bunch of arch-specific implementations of ioremap_prot() > and they're already doing this. As far as I can tell, only csky and > riscv actually use this file (CONFIG_GENERIC_IOREMAP=y). But you're > ARM(?) so I'm wondering how come you're patching it?
Hi Andrew,
I found this via reading code when debug some other issue, meanwhile, there
are some code duplication of ioremap between arm64 and generic ioremap, so
1) bugfix: fix the above issue and test on riscv
2) cleanup: convert arm64 to use GENERIC_IOREMAP,
3) feature: after that, enable HAVE_IOREMAP_PROT on arm64
> > Someone should do s/addr/phys_addr/ in this function, like the rest of > the world (sensibly) does. I will make it in next version. > > > .
| |