Re: [PATCH] lib/vsprintf.c: add %paD format specifier for dma_addr_ttypes

From: Lars-Peter Clausen
Date: Fri Nov 29 2013 - 17:49:38 EST


On 11/29/2013 11:10 PM, Joe Perches wrote:
On Fri, 2013-11-29 at 14:56 +0200, Andy Shevchenko wrote:
On Thu, 2013-11-28 at 10:32 -0800, Joe Perches wrote:
On Thu, 2013-11-28 at 13:28 +0200, user.email wrote:
From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Add the %paD format specifier for printing a dma_addr_t type, since the
DMA address size on some platforms can vary based on build options,
regardless of the native integer type.

OK, but I prefer this one because upper case is
sometimes used to specify upper case only output.
ala %x %X and %pUl %pUL.

No objections.

https://lkml.org/lkml/2013/9/12/483

Hmm... Still not in kernel. Do you know reason why it so?

It was just for discussion and I didn't sign or push it
to anyone else.

What's slightly funny is how far back dma_addr_t printk
discussions go.

http://lkml.indiana.edu/hypermail/linux/kernel/0202.1/1221.html

Anyway, if you think you're going to do a lot of
transforms of printk("%x", dma_addr_t) with or without
(unsigned long long) or (u64) casts, I'll submit a signed
patch to Andrew.

Let me know.

In an aside for Julia Lawall (added to cc's), I tried to
do a spatch grep for dma_addr_t (and phys_addr_t) types
that were cast to (unsigned long) or (u64) but I was
unsuccessful. Is there something else I need to do?

$ cat dma_addr_t.cocci
@@
dma_addr_t foo;
@@

* (unsigned long long)foo;

Remove the semicolon, otherwise it will only match statements which are nothing but the cast.


$ cat t.c
#include <linux/types.h>
#include <linux/printk.h>

int foo(dma_addr_t a)
{
printk("test: %llx\n", (unsigned long long)a);
}

$ spatch --all-includes --local-includes -I include/ --sp-file dma_addr_t.cocci t.c
init_defs_builtins: /usr/local/share/coccinelle/standard.h
HANDLING: t.c
$

--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/