Re: [PATCH] i2c: sis630: correct format strings

From: Nick Desaulniers
Date: Mon Mar 04 2019 - 13:16:55 EST


On Sat, Mar 2, 2019 at 6:19 AM Louis Taylor <louis@xxxxxxxxxx> wrote:
>
> When compiling with -Wformat, clang warns:
>
> drivers/i2c/busses/i2c-sis630.c:482:4: warning: format specifies type
> 'unsigned short' but the argument has type 'int' [-Wformat]
> smbus_base + SMB_STS,
> ^~~~~~~~~~~~~~~~~~~~
>
> drivers/i2c/busses/i2c-sis630.c:483:4: warning: format specifies type
> 'unsigned short' but the argument has type 'int' [-Wformat]
> smbus_base + SMB_STS + SIS630_SMB_IOREGION - 1);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> drivers/i2c/busses/i2c-sis630.c:531:37: warning: format specifies type
> 'unsigned short' but the argument has type 'int' [-Wformat]
> "SMBus SIS630 adapter at %04hx", smbus_base + SMB_STS);
> ~~~~~ ^~~~~~~~~~~~~~~~~~~~
>
> This patch fixes the format strings to use the format type for int.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/378
> Signed-off-by: Louis Taylor <louis@xxxxxxxxxx>
> ---
> drivers/i2c/busses/i2c-sis630.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c
> index 1e6805b5cef2..a57aa4fe51a4 100644
> --- a/drivers/i2c/busses/i2c-sis630.c
> +++ b/drivers/i2c/busses/i2c-sis630.c
> @@ -478,7 +478,7 @@ static int sis630_setup(struct pci_dev *sis630_dev)
> if (!request_region(smbus_base + SMB_STS, SIS630_SMB_IOREGION,
> sis630_driver.name)) {
> dev_err(&sis630_dev->dev,
> - "I/O Region 0x%04hx-0x%04hx for SMBus already in use.\n",
> + "I/O Region 0x%04x-0x%04x for SMBus already in use.\n",
> smbus_base + SMB_STS,

Even additions with 0x00 imply integer promotions (my least favorite part of C).
Thanks for the cleanup.
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

--
Thanks,
~Nick Desaulniers