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
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
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
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
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
>
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