diff mbox series

[RESEND,6/6] counter: add defaults to switch-statements

Message ID b98d1a3ed4b0b324b261b23defd1bdddddba4d44.1647373009.git.vilhelm.gray@gmail.com (mailing list archive)
State Handled Elsewhere
Headers show
Series Counter updates, cleanups, and features for 5.18 | expand

Commit Message

William Breathitt Gray March 15, 2022, 7:38 p.m. UTC
From: Tom Rix <trix@redhat.com>

Clang static analysis reports this representative problem
counter-chrdev.c:482:3: warning: Undefined or garbage value
  returned to caller
  return ret;
  ^~~~~~~~~~

counter_get_data() has a multilevel switches, some without
defaults, so ret is sometimes not set.
Add returning -EINVAL similar to other defaults.

Signed-off-by: Tom Rix <trix@redhat.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20220227161746.82776-1-trix@redhat.com
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
---
 drivers/counter/counter-chrdev.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Syed Nayyar Waris March 16, 2022, 7:37 a.m. UTC | #1
On Wed, Mar 16, 2022 at 12:43 PM William Breathitt Gray
<vilhelm.gray@gmail.com> wrote:
>
> From: Tom Rix <trix@redhat.com>
>
> Clang static analysis reports this representative problem
> counter-chrdev.c:482:3: warning: Undefined or garbage value
>   returned to caller
>   return ret;
>   ^~~~~~~~~~
>
> counter_get_data() has a multilevel switches, some without
> defaults, so ret is sometimes not set.
> Add returning -EINVAL similar to other defaults.
>
> Signed-off-by: Tom Rix <trix@redhat.com>
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Link: https://lore.kernel.org/r/20220227161746.82776-1-trix@redhat.com
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
> ---
>  drivers/counter/counter-chrdev.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/counter/counter-chrdev.c b/drivers/counter/counter-chrdev.c
> index b7c62f957a6a..69d340be9c93 100644
> --- a/drivers/counter/counter-chrdev.c
> +++ b/drivers/counter/counter-chrdev.c
> @@ -477,6 +477,8 @@ static int counter_get_data(struct counter_device *const counter,
>                 case COUNTER_SCOPE_COUNT:
>                         ret = comp->count_u8_read(counter, parent, &value_u8);
>                         break;
> +               default:
> +                       return -EINVAL;
>                 }
>                 *value = value_u8;
>                 return ret;
> @@ -496,6 +498,8 @@ static int counter_get_data(struct counter_device *const counter,
>                 case COUNTER_SCOPE_COUNT:
>                         ret = comp->count_u32_read(counter, parent, &value_u32);
>                         break;
> +               default:
> +                       return -EINVAL;
>                 }
>                 *value = value_u32;
>                 return ret;
> --
> 2.35.1
>

Acked-by: Syed Nayyar Waris <syednwaris@gmail.com>

Thanks
diff mbox series

Patch

diff --git a/drivers/counter/counter-chrdev.c b/drivers/counter/counter-chrdev.c
index b7c62f957a6a..69d340be9c93 100644
--- a/drivers/counter/counter-chrdev.c
+++ b/drivers/counter/counter-chrdev.c
@@ -477,6 +477,8 @@  static int counter_get_data(struct counter_device *const counter,
 		case COUNTER_SCOPE_COUNT:
 			ret = comp->count_u8_read(counter, parent, &value_u8);
 			break;
+		default:
+			return -EINVAL;
 		}
 		*value = value_u8;
 		return ret;
@@ -496,6 +498,8 @@  static int counter_get_data(struct counter_device *const counter,
 		case COUNTER_SCOPE_COUNT:
 			ret = comp->count_u32_read(counter, parent, &value_u32);
 			break;
+		default:
+			return -EINVAL;
 		}
 		*value = value_u32;
 		return ret;