Thread (9 messages) 9 messages, 3 authors, 2019-08-16

Re: crypto: hisilicon - Fix warning on printing %p with dma_addr_t

flat view

From: Zhou Wang <wangzhou1@hisilicon.com>
Date: 2019-08-16 07:53:58

On 2019/8/16 15:08, Ondrej Mosnáček wrote:
pi 16. 8. 2019 o 9:02 Ondrej Mosnáček [off-list ref] napísal(a):
quoted
Hi Herbert,

pi 16. 8. 2019 o 1:52 Herbert Xu [off-list ref] napísal(a):
quoted
On Thu, Aug 15, 2019 at 10:17:37PM +0800, Zhou Wang wrote:
quoted
quoted
-   dev_dbg(&qm->pdev->dev, "QM mailbox request to q%u: %u-%pad\n", queue,
-           cmd, dma_addr);
+   dev_dbg(&qm->pdev->dev, "QM mailbox request to q%u: %u-%#lxad\n",
+           queue, cmd, (unsigned long)dma_addr);
Thanks. However, to be honest I can't get why we fix it like this.
Can you give me a clue?
dma_addr_t is not a pointer.  It's an integer type and therefore
you need to print it out as such.
According to Documentation/core-api/printk-formats.rst, %pad is the
format specifier intended specifically for dma_addr_t [1], so perhaps
the kbuild robot warning was in fact bogus?

[1] https://www.kernel.org/doc/html/latest/core-api/printk-formats.html#dma-address-types-dma-addr-t
Oh, wait, in that section it actually says "Passed by reference.", so
Zhou is most likely right that the proper fix is to pass a pointer to
the variable containing the address (I assume this is to make the
generic GCC's format checking pass even if dma_addr_t is not actually
a pointer).
Yes, I think you are right, I also mentioned this in v3.

Thanks,
Zhou
quoted
quoted
Actually my patch is buggy too, on some architectures it can be
a long long so we need to cast is such.

Cheers,
--
Email: Herbert Xu [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help