Re: [PATCH] nfc: s3fwrn5: fix undefined parameter values in dev_err()

From: Nathan Chancellor
Date: Tue Jul 27 2021 - 13:34:58 EST


On Tue, Jul 27, 2021 at 08:25:06PM +0800, Tang Bin wrote:
> In the function s3fwrn5_fw_download(), the 'ret' is not assigned,
> so the correct value should be given in dev_err function.
>
> Fixes: a0302ff5906a ("nfc: s3fwrn5: remove unnecessary label")
> Signed-off-by: Zhang Shengju <zhangshengju@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Tang Bin <tangbin@xxxxxxxxxxxxxxxxxxxx>

This clears up a clang warning that I see:

drivers/nfc/s3fwrn5/firmware.c:425:41: error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
"Cannot allocate shash (code=%d)\n", ret);
^~~
./include/linux/dev_printk.h:144:65: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
./include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
^~~~~~~~~~~
drivers/nfc/s3fwrn5/firmware.c:416:9: note: initialize the variable 'ret' to silence this warning
int ret;
^
= 0
1 error generated.

One comment below but regardless:

Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>

> ---
> drivers/nfc/s3fwrn5/firmware.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nfc/s3fwrn5/firmware.c b/drivers/nfc/s3fwrn5/firmware.c
> index 1421ffd46d9a..52c6f76adfb2 100644
> --- a/drivers/nfc/s3fwrn5/firmware.c
> +++ b/drivers/nfc/s3fwrn5/firmware.c
> @@ -422,7 +422,7 @@ int s3fwrn5_fw_download(struct s3fwrn5_fw_info *fw_info)
> tfm = crypto_alloc_shash("sha1", 0, 0);
> if (IS_ERR(tfm)) {
> dev_err(&fw_info->ndev->nfc_dev->dev,
> - "Cannot allocate shash (code=%d)\n", ret);
> + "Cannot allocate shash (code=%d)\n", PTR_ERR(tfm));

We know this is going to be an error pointer so this could be changed to

"Cannot allocate shash (code=%pe)\n", tfm);

to make it a little cleaner to understand. See commit 57f5677e535b
("printf: add support for printing symbolic error names").

> return PTR_ERR(tfm);
> }
>
> --
> 2.18.2

Cheers,
Nathan