2020-12-03 22:36:41

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] ufshcd: fix Wsometimes-uninitialized warning

From: Arnd Bergmann <[email protected]>

clang complains about a possible code path in which a variable is
used without an initialization:

drivers/scsi/ufs/ufshcd.c:7690:3: error: variable 'sdp' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
BUG_ON(1);
^~~~~~~~~
include/asm-generic/bug.h:63:36: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^~~~~~~~~~~~~~~~~~~

Turn the BUG_ON(1) into an unconditional BUG() that makes it clear
to clang that this code path is never hit.

Fixes: 4f3e900b6282 ("scsi: ufs: Clear UAC for FFU and RPMB LUNs")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/scsi/ufs/ufshcd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index f165baee937f..b4f7c4263334 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -7687,7 +7687,7 @@ static int ufshcd_clear_ua_wlun(struct ufs_hba *hba, u8 wlun)
else if (wlun == UFS_UPIU_RPMB_WLUN)
sdp = hba->sdev_rpmb;
else
- BUG_ON(1);
+ BUG();
if (sdp) {
ret = scsi_device_get(sdp);
if (!ret && !scsi_device_online(sdp)) {
--
2.27.0


2020-12-05 08:16:24

by Avri Altman

[permalink] [raw]
Subject: RE: [PATCH] ufshcd: fix Wsometimes-uninitialized warning

>
>
> From: Arnd Bergmann <[email protected]>
>
> clang complains about a possible code path in which a variable is
> used without an initialization:
>
> drivers/scsi/ufs/ufshcd.c:7690:3: error: variable 'sdp' is used uninitialized
> whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> BUG_ON(1);
> ^~~~~~~~~
> include/asm-generic/bug.h:63:36: note: expanded from macro 'BUG_ON'
> #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
> ^~~~~~~~~~~~~~~~~~~
>
> Turn the BUG_ON(1) into an unconditional BUG() that makes it clear
> to clang that this code path is never hit.
>
> Fixes: 4f3e900b6282 ("scsi: ufs: Clear UAC for FFU and RPMB LUNs")
> Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Avri Altman <[email protected]>

> ---
> drivers/scsi/ufs/ufshcd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index f165baee937f..b4f7c4263334 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -7687,7 +7687,7 @@ static int ufshcd_clear_ua_wlun(struct ufs_hba
> *hba, u8 wlun)
> else if (wlun == UFS_UPIU_RPMB_WLUN)
> sdp = hba->sdev_rpmb;
> else
> - BUG_ON(1);
> + BUG();
> if (sdp) {
> ret = scsi_device_get(sdp);
> if (!ret && !scsi_device_online(sdp)) {
> --
> 2.27.0

2020-12-05 08:18:39

by Avri Altman

[permalink] [raw]
Subject: RE: [PATCH] ufshcd: fix Wsometimes-uninitialized warning

>
>
> From: Arnd Bergmann <[email protected]>
>
> clang complains about a possible code path in which a variable is
> used without an initialization:
>
> drivers/scsi/ufs/ufshcd.c:7690:3: error: variable 'sdp' is used uninitialized
> whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> BUG_ON(1);
> ^~~~~~~~~
> include/asm-generic/bug.h:63:36: note: expanded from macro 'BUG_ON'
> #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
> ^~~~~~~~~~~~~~~~~~~
>
> Turn the BUG_ON(1) into an unconditional BUG() that makes it clear
> to clang that this code path is never hit.
>
> Fixes: 4f3e900b6282 ("scsi: ufs: Clear UAC for FFU and RPMB LUNs")
> Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Avri Altman <[email protected]>

> ---
> drivers/scsi/ufs/ufshcd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index f165baee937f..b4f7c4263334 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -7687,7 +7687,7 @@ static int ufshcd_clear_ua_wlun(struct ufs_hba
> *hba, u8 wlun)
> else if (wlun == UFS_UPIU_RPMB_WLUN)
> sdp = hba->sdev_rpmb;
> else
> - BUG_ON(1);
> + BUG();
> if (sdp) {
> ret = scsi_device_get(sdp);
> if (!ret && !scsi_device_online(sdp)) {
> --
> 2.27.0

2020-12-08 01:33:17

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] ufshcd: fix Wsometimes-uninitialized warning


Arnd,

> clang complains about a possible code path in which a variable is
> used without an initialization:
>
> drivers/scsi/ufs/ufshcd.c:7690:3: error: variable 'sdp' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> BUG_ON(1);
> ^~~~~~~~~

Applied to 5.11/scsi-staging, thanks!

--
Martin K. Petersen Oracle Linux Engineering

2020-12-09 17:29:51

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] ufshcd: fix Wsometimes-uninitialized warning

On Thu, 3 Dec 2020 23:31:26 +0100, Arnd Bergmann wrote:

> clang complains about a possible code path in which a variable is
> used without an initialization:
>
> drivers/scsi/ufs/ufshcd.c:7690:3: error: variable 'sdp' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> BUG_ON(1);
> ^~~~~~~~~
> include/asm-generic/bug.h:63:36: note: expanded from macro 'BUG_ON'
> #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
> ^~~~~~~~~~~~~~~~~~~
>
> [...]

Applied to 5.11/scsi-queue, thanks!

[1/1] ufshcd: fix Wsometimes-uninitialized warning
https://git.kernel.org/mkp/scsi/c/4c60244dc372

--
Martin K. Petersen Oracle Linux Engineering