On Tuesday, January 8, 2019 10:54:28 AM CET Michael Ellerman wrote: > Christian Lamparter <chunk...@gmail.com> writes: > > On Wednesday, January 2, 2019 12:31:50 PM CET Michael Ellerman wrote: > >> On Tue, 2019-01-01 at 03:56:00 UTC, Michael Ellerman wrote: > >> > Currently the code produces several warnings, eg: > >> > > >> > arch/powerpc/platforms/4xx/ocm.c:240:38: error: format '%llx' > >> > expects argument of type 'long long unsigned int', but argument 3 > >> > has type 'phys_addr_t {aka unsigned int}' > >> > seq_printf(m, "PhysAddr : 0x%llx\n", ocm->phys); > >> > ~~~^ ~~~~~~~~~ > >> > > >> > Fix it by using the special %pa[p] format for printing phys_addr_t. > >> > Note we need to pass the value by reference for the special specifier > >> > to work. > >> > > >> > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > >> > >> Series applied to powerpc fixes. > >> > >> https://git.kernel.org/powerpc/c/52b88fa1e8c7bae03bb691178a9f8b > > > > Well, I guess I'm a late. I had issues with the getting 4.20+ > > crosscompiled on debian with make-kpkg. > > > > Nevertheless, I finally got a working kernel and > > on the MyBook Live APM82181: > > > > --- > > root@mbl:/sys/kernel/debug# cat ppc4xx_ocm/info > > PPC4XX OCM : 1 > > PhysAddr : 0x0000000400040000[p] > > MemTotal : 32768 Bytes > > MemTotal(NC) : 32768 Bytes > > MemTotal(C) : 0 Bytes > > > > NC.PhysAddr : 0x0000000400040000[p] > > NC.VirtAddr : 0x6bc84b36 > > NC.MemTotal : 32768 Bytes > > NC.MemFree : 32768 Bytes > > > > C.PhysAddr : 0x0000000000000000[p] > > C.VirtAddr : 0x (null) > > C.MemTotal : 0 Bytes > > C.MemFree : 0 Bytes > > Oh right, I'm an idiot :) > > The docs say: > > Physical address types phys_addr_t > ---------------------------------- > > %pa[p] 0x01234567 or 0x0123456789abcdef > > > And if you grep for that there's eg: > > drivers/ntb/test/ntb_tool.c: "Window Size > \t%pa[p]\n", > > So I just literally copied that. > > But it's trying to indicate that the p is optional. > > This should fix it, I won't merge it until you've tested it this time :) > > cheers > > > diff --git a/arch/powerpc/platforms/4xx/ocm.c > b/arch/powerpc/platforms/4xx/ocm.c > index a1aaa1569d7c..f0e488d97567 100644 > --- a/arch/powerpc/platforms/4xx/ocm.c > +++ b/arch/powerpc/platforms/4xx/ocm.c > @@ -237,12 +237,12 @@ static int ocm_debugfs_show(struct seq_file *m, void *v) > continue; > > seq_printf(m, "PPC4XX OCM : %d\n", ocm->index); > - seq_printf(m, "PhysAddr : %pa[p]\n", &(ocm->phys)); > + seq_printf(m, "PhysAddr : %pa\n", &(ocm->phys)); > seq_printf(m, "MemTotal : %d Bytes\n", ocm->memtotal); > seq_printf(m, "MemTotal(NC) : %d Bytes\n", ocm->nc.memtotal); > seq_printf(m, "MemTotal(C) : %d Bytes\n\n", ocm->c.memtotal); > > - seq_printf(m, "NC.PhysAddr : %pa[p]\n", &(ocm->nc.phys)); > + seq_printf(m, "NC.PhysAddr : %pa\n", &(ocm->nc.phys)); > seq_printf(m, "NC.VirtAddr : 0x%p\n", ocm->nc.virt); > seq_printf(m, "NC.MemTotal : %d Bytes\n", ocm->nc.memtotal); > seq_printf(m, "NC.MemFree : %d Bytes\n", ocm->nc.memfree); > @@ -252,7 +252,7 @@ static int ocm_debugfs_show(struct seq_file *m, void *v) > blk->size, blk->owner); > } > > - seq_printf(m, "\nC.PhysAddr : %pa[p]\n", &(ocm->c.phys)); > + seq_printf(m, "\nC.PhysAddr : %pa\n", &(ocm->c.phys)); > seq_printf(m, "C.VirtAddr : 0x%p\n", ocm->c.virt); > seq_printf(m, "C.MemTotal : %d Bytes\n", ocm->c.memtotal); > seq_printf(m, "C.MemFree : %d Bytes\n", ocm->c.memfree);
Ok, with the patch applied it now looks like: |root@mbl:/sys/kernel/debug/ppc4xx_ocm# cat info |PPC4XX OCM : 1 |PhysAddr : 0x0000000400040000 |MemTotal : 32768 Bytes |MemTotal(NC) : 32768 Bytes |MemTotal(C) : 0 Bytes | |NC.PhysAddr : 0x0000000400040000 |NC.VirtAddr : 0x54f5bce2 |NC.MemTotal : 32768 Bytes |NC.MemFree : 32768 Bytes | |C.PhysAddr : 0x0000000000000000 |C.VirtAddr : 0x (null) |C.MemTotal : 0 Bytes |C.MemFree : 0 Bytes ... just as expected. ;) Thanks, Christian