Messages in this thread | | | Subject | Re: [PATCH] lib/vsprintf.c: add %paD format specifier for dma_addr_t types | From | Joe Perches <> | Date | Fri, 29 Nov 2013 14:10:40 -0800 |
| |
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@linux.intel.com> > > > > > > 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;
$ 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 $
| |