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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019/8/16 15:08, Ondrej Mosnáček wrote:
> pi 16. 8. 2019 o 9:02 Ondrej Mosnáček <omosnacek@xxxxxxxxx> napísal(a):
>> Hi Herbert,
>>
>> pi 16. 8. 2019 o 1:52 Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> napísal(a):
>>> On Thu, Aug 15, 2019 at 10:17:37PM +0800, Zhou Wang wrote:
>>>>
>>>>> -   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

> 
>>
>>>
>>> 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 <herbert@xxxxxxxxxxxxxxxxxxx>
>>> Home Page: http://gondor.apana.org.au/~herbert/
>>> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
> 
> 




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux