2020-08-31 13:35:23

by Cengiz Can

[permalink] [raw]
Subject: [PATCH] staging: atomisp: Fix fallthrough keyword warning

commit df561f6688fe ("treewide: Use fallthrough pseudo-keyword") from
Gustavo A. R. Silva replaced and standardized /* fallthrough */ comments
with 'fallthrough' pseudo-keyword.

However, in one of the switch-case statements, Coverity Static Analyzer
throws a warning that 'fallthrough' is unreachable due to the adjacent
'return false' statement.

Since 'fallthrough' is actually an empty "do {} while(0)" this might be
due to compiler optimizations. But that needs further investigation.

In order to fix the unreachable code warning, make adjacent 'return
false' a part of the previous if statement's else clause.

Reported-by: Coverity Static Analyzer CID 1466511
Signed-off-by: Cengiz Can <[email protected]>
---
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 1b2b2c68025b..aaa2d0e0851b 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -709,8 +709,8 @@ static bool is_pipe_valid_to_current_run_mode(struct atomisp_sub_device *asd,
if (pipe_id == IA_CSS_PIPE_ID_CAPTURE ||
pipe_id == IA_CSS_PIPE_ID_PREVIEW)
return true;
-
- return false;
+ else
+ return false;
fallthrough;
case ATOMISP_RUN_MODE_VIDEO:
if (!asd->continuous_mode->val) {
--
2.28.0


2020-08-31 13:44:16

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: atomisp: Fix fallthrough keyword warning

On Mon, Aug 31, 2020 at 04:30:12PM +0300, Cengiz Can wrote:
> commit df561f6688fe ("treewide: Use fallthrough pseudo-keyword") from
> Gustavo A. R. Silva replaced and standardized /* fallthrough */ comments
> with 'fallthrough' pseudo-keyword.
>
> However, in one of the switch-case statements, Coverity Static Analyzer
> throws a warning that 'fallthrough' is unreachable due to the adjacent
> 'return false' statement.
>
> Since 'fallthrough' is actually an empty "do {} while(0)" this might be
> due to compiler optimizations. But that needs further investigation.
>
> In order to fix the unreachable code warning, make adjacent 'return
> false' a part of the previous if statement's else clause.
>
> Reported-by: Coverity Static Analyzer CID 1466511
> Signed-off-by: Cengiz Can <[email protected]>
> ---
> drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> index 1b2b2c68025b..aaa2d0e0851b 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> @@ -709,8 +709,8 @@ static bool is_pipe_valid_to_current_run_mode(struct atomisp_sub_device *asd,
> if (pipe_id == IA_CSS_PIPE_ID_CAPTURE ||
> pipe_id == IA_CSS_PIPE_ID_PREVIEW)
> return true;
> -
> - return false;
> + else
> + return false;
> fallthrough;

Heh... Still unreachable, but now it has a checkpatch.pl warning as
well. Just get rid of the bogus fallthrough annotation.

> case ATOMISP_RUN_MODE_VIDEO:
> if (!asd->continuous_mode->val) {

regards,
dan carpenter

2020-08-31 13:50:55

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: atomisp: Fix fallthrough keyword warning

Really I think this function is pretty buggy. It shouldn't be falling
through at all... I reported it a couple days back so it's possible
that someone is working on a fix already.

regards,
dan carpenter

2020-08-31 13:53:57

by Cengiz Can

[permalink] [raw]
Subject: [PATCH v2] staging: atomisp: Remove unnecessary 'fallthrough'

commit df561f6688fe ("treewide: Use fallthrough pseudo-keyword") from
Gustavo A. R. Silva replaced and standardized /* fallthrough */ comments
with 'fallthrough' pseudo-keyword.

However, in one of the switch-case statements, Coverity Static Analyzer
throws a warning that 'fallthrough' is unreachable due to the adjacent
'return false' statement. (Coverity ID CID 1466511)

In order to fix the unreachable code warning, remove unnecessary
fallthrough keyword.

Signed-off-by: Cengiz Can <[email protected]>
---
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 1b2b2c68025b..feb26c221e96 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -711,7 +711,6 @@ static bool is_pipe_valid_to_current_run_mode(struct atomisp_sub_device *asd,
return true;

return false;
- fallthrough;
case ATOMISP_RUN_MODE_VIDEO:
if (!asd->continuous_mode->val) {
if (pipe_id == IA_CSS_PIPE_ID_VIDEO ||
--
2.28.0

2020-08-31 14:35:58

by Gustavo A. R. Silva

[permalink] [raw]
Subject: Re: [PATCH v2] staging: atomisp: Remove unnecessary 'fallthrough'

On Mon, Aug 31, 2020 at 04:51:04PM +0300, Cengiz Can wrote:
> commit df561f6688fe ("treewide: Use fallthrough pseudo-keyword") from
> Gustavo A. R. Silva replaced and standardized /* fallthrough */ comments
> with 'fallthrough' pseudo-keyword.
>
> However, in one of the switch-case statements, Coverity Static Analyzer
> throws a warning that 'fallthrough' is unreachable due to the adjacent
> 'return false' statement. (Coverity ID CID 1466511)
>
> In order to fix the unreachable code warning, remove unnecessary
> fallthrough keyword.
>
> Signed-off-by: Cengiz Can <[email protected]>

Reviewed-by: Gustavo A. R. Silva <[email protected]>

Thanks
--
Gustavo

> ---
> drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> index 1b2b2c68025b..feb26c221e96 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> @@ -711,7 +711,6 @@ static bool is_pipe_valid_to_current_run_mode(struct atomisp_sub_device *asd,
> return true;
>
> return false;
> - fallthrough;
> case ATOMISP_RUN_MODE_VIDEO:
> if (!asd->continuous_mode->val) {
> if (pipe_id == IA_CSS_PIPE_ID_VIDEO ||
> --
> 2.28.0
>

2020-08-31 18:39:16

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH] staging: atomisp: Fix fallthrough keyword warning

Em Mon, 31 Aug 2020 16:30:12 +0300
Cengiz Can <[email protected]> escreveu:

> commit df561f6688fe ("treewide: Use fallthrough pseudo-keyword") from
> Gustavo A. R. Silva replaced and standardized /* fallthrough */ comments
> with 'fallthrough' pseudo-keyword.
>
> However, in one of the switch-case statements, Coverity Static Analyzer
> throws a warning that 'fallthrough' is unreachable due to the adjacent
> 'return false' statement.
>
> Since 'fallthrough' is actually an empty "do {} while(0)" this might be
> due to compiler optimizations. But that needs further investigation.
>
> In order to fix the unreachable code warning, make adjacent 'return
> false' a part of the previous if statement's else clause.
>
> Reported-by: Coverity Static Analyzer CID 1466511
> Signed-off-by: Cengiz Can <[email protected]>
> ---
> drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> index 1b2b2c68025b..aaa2d0e0851b 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> @@ -709,8 +709,8 @@ static bool is_pipe_valid_to_current_run_mode(struct atomisp_sub_device *asd,
> if (pipe_id == IA_CSS_PIPE_ID_CAPTURE ||
> pipe_id == IA_CSS_PIPE_ID_PREVIEW)
> return true;
> -
> - return false;
> + else
> + return false;
> fallthrough;

Actually, the actual fix here would be to get rid of fallthrough.

Regards,

Thanks,
Mauro