[1/2] powerpc/4xx/ocm: Fix phys_addr_t printf warnings

Michael Ellerman mpe at ellerman.id.au
Tue Jan 8 20:54:28 AEDT 2019


Christian Lamparter <chunkeey at 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 <mpe at 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 at 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);


More information about the Linuxppc-dev mailing list