2022-05-23 15:07:25

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] misc: rtsx: Fix clang -Wsometimes-uninitialized in rts5261_init_from_hw()

Clang warns:

drivers/misc/cardreader/rts5261.c:406:13: error: variable 'setting_reg2' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
} else if (efuse_valid == 0) {
^~~~~~~~~~~~~~~~
drivers/misc/cardreader/rts5261.c:412:30: note: uninitialized use occurs here
pci_read_config_dword(pdev, setting_reg2, &lval2);
^~~~~~~~~~~~

efuse_valid == 1 is not a valid value so just return early from the
function to avoid using setting_reg2 uninitialized.

Fixes: b1c5f3085149 ("misc: rtsx: add rts5261 efuse function")
Reported-by: Dan Carpenter <[email protected]>
Reported-by: kernel test robot <[email protected]>
Reported-by: Tom Rix <[email protected]>
Suggested-by: Ricky WU <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---

This is basically a v2 of https://lore.kernel.org/[email protected]/.

drivers/misc/cardreader/rts5261.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/misc/cardreader/rts5261.c b/drivers/misc/cardreader/rts5261.c
index 749cc5a46d13..b1e76030cafd 100644
--- a/drivers/misc/cardreader/rts5261.c
+++ b/drivers/misc/cardreader/rts5261.c
@@ -407,6 +407,8 @@ static void rts5261_init_from_hw(struct rtsx_pcr *pcr)
// default
setting_reg1 = PCR_SETTING_REG1;
setting_reg2 = PCR_SETTING_REG2;
+ } else {
+ return;
}

pci_read_config_dword(pdev, setting_reg2, &lval2);

base-commit: 90de6805267f8c79cd2b1a36805071e257c39b5c
--
2.36.1



2022-05-25 10:54:00

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] misc: rtsx: Fix clang -Wsometimes-uninitialized in rts5261_init_from_hw()

On Mon, May 23, 2022 at 5:05 PM Nathan Chancellor <[email protected]> wrote:
>
> Clang warns:
>
> drivers/misc/cardreader/rts5261.c:406:13: error: variable 'setting_reg2' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> } else if (efuse_valid == 0) {
> ^~~~~~~~~~~~~~~~
> drivers/misc/cardreader/rts5261.c:412:30: note: uninitialized use occurs here
> pci_read_config_dword(pdev, setting_reg2, &lval2);
> ^~~~~~~~~~~~
>
> efuse_valid == 1 is not a valid value so just return early from the
> function to avoid using setting_reg2 uninitialized.
>
> Fixes: b1c5f3085149 ("misc: rtsx: add rts5261 efuse function")
> Reported-by: Dan Carpenter <[email protected]>
> Reported-by: kernel test robot <[email protected]>
> Reported-by: Tom Rix <[email protected]>
> Suggested-by: Ricky WU <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>

Looks good to me,

Acked-by: Arnd Bergmann <[email protected]>

2022-06-06 11:16:43

by Alexander Lobakin

[permalink] [raw]
Subject: Re: [PATCH] misc: rtsx: Fix clang -Wsometimes-uninitialized in rts5261_init_from_hw()

From: Nathan Chancellor <[email protected]>
Date: Mon, 23 May 2022 08:05:22 -0700

> Clang warns:
>
> drivers/misc/cardreader/rts5261.c:406:13: error: variable 'setting_reg2' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> } else if (efuse_valid == 0) {
> ^~~~~~~~~~~~~~~~
> drivers/misc/cardreader/rts5261.c:412:30: note: uninitialized use occurs here
> pci_read_config_dword(pdev, setting_reg2, &lval2);
> ^~~~~~~~~~~~
>
> efuse_valid == 1 is not a valid value so just return early from the
> function to avoid using setting_reg2 uninitialized.
>
> Fixes: b1c5f3085149 ("misc: rtsx: add rts5261 efuse function")
> Reported-by: Dan Carpenter <[email protected]>
> Reported-by: kernel test robot <[email protected]>
> Reported-by: Tom Rix <[email protected]>
> Suggested-by: Ricky WU <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>

Ping? Mainline 5.19-rc1 is now broken due to this.

> ---
>
> This is basically a v2 of https://lore.kernel.org/[email protected]/.
>
> drivers/misc/cardreader/rts5261.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/misc/cardreader/rts5261.c b/drivers/misc/cardreader/rts5261.c
> index 749cc5a46d13..b1e76030cafd 100644
> --- a/drivers/misc/cardreader/rts5261.c
> +++ b/drivers/misc/cardreader/rts5261.c
> @@ -407,6 +407,8 @@ static void rts5261_init_from_hw(struct rtsx_pcr *pcr)
> // default
> setting_reg1 = PCR_SETTING_REG1;
> setting_reg2 = PCR_SETTING_REG2;
> + } else {
> + return;
> }
>
> pci_read_config_dword(pdev, setting_reg2, &lval2);
>
> base-commit: 90de6805267f8c79cd2b1a36805071e257c39b5c
> --
> 2.36.1

Thanks,
Al

2022-06-06 11:34:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] misc: rtsx: Fix clang -Wsometimes-uninitialized in rts5261_init_from_hw()

On Mon, Jun 06, 2022 at 12:58:19PM +0200, Alexander Lobakin wrote:
> From: Nathan Chancellor <[email protected]>
> Date: Mon, 23 May 2022 08:05:22 -0700
>
> > Clang warns:
> >
> > drivers/misc/cardreader/rts5261.c:406:13: error: variable 'setting_reg2' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> > } else if (efuse_valid == 0) {
> > ^~~~~~~~~~~~~~~~
> > drivers/misc/cardreader/rts5261.c:412:30: note: uninitialized use occurs here
> > pci_read_config_dword(pdev, setting_reg2, &lval2);
> > ^~~~~~~~~~~~
> >
> > efuse_valid == 1 is not a valid value so just return early from the
> > function to avoid using setting_reg2 uninitialized.
> >
> > Fixes: b1c5f3085149 ("misc: rtsx: add rts5261 efuse function")
> > Reported-by: Dan Carpenter <[email protected]>
> > Reported-by: kernel test robot <[email protected]>
> > Reported-by: Tom Rix <[email protected]>
> > Suggested-by: Ricky WU <[email protected]>
> > Signed-off-by: Nathan Chancellor <[email protected]>
>
> Ping? Mainline 5.19-rc1 is now broken due to this.

Perhaps use a different compiler? :)

It's in my "to apply" queue, will get there hopefully this week, it came
in during the merge window which prevented me from touching it. You
know this...

thanks,

greg k-h