* [PATCH] platform/x86/amd/pmf: Fix clang unused variable warning
@ 2022-08-19 17:45 Shyam Sundar S K
2022-08-19 21:46 ` Nathan Chancellor
0 siblings, 1 reply; 2+ messages in thread
From: Shyam Sundar S K @ 2022-08-19 17:45 UTC (permalink / raw)
To: hdegoede, markgross
Cc: platform-driver-x86, Patil.Reddy, Shyam Sundar S K, Nathan Chancellor
variable 'mode' is used uninitialized whenever switch default is taken
in sps.c which leads to the following clang warning.
---
drivers/platform/x86/amd/pmf/sps.c:96:2: error: variable 'mode' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
default:
^~~~~~~
drivers/platform/x86/amd/pmf/sps.c:101:9: note: uninitialized use occurs here
return mode;
^~~~
drivers/platform/x86/amd/pmf/sps.c:84:9: note: initialize the variable 'mode' to silence this warning
u8 mode;
^
= '\0'
1 error generated.
---
Fix it by returning -EOPNOTSUPP in default case and also change the return
type of the function amd_pmf_get_pprof_modes() to keep it similar like
other drivers which implement platform_profile.
Fixes: 4c71ae414474 ("platform/x86/amd/pmf: Add support SPS PMF feature")
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
---
drivers/platform/x86/amd/pmf/pmf.h | 2 +-
drivers/platform/x86/amd/pmf/sps.c | 11 +++++++----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/platform/x86/amd/pmf/pmf.h b/drivers/platform/x86/amd/pmf/pmf.h
index 7613ed2ef6e3..172610f93bd1 100644
--- a/drivers/platform/x86/amd/pmf/pmf.h
+++ b/drivers/platform/x86/amd/pmf/pmf.h
@@ -303,7 +303,7 @@ int amd_pmf_init_metrics_table(struct amd_pmf_dev *dev);
int amd_pmf_get_power_source(void);
/* SPS Layer */
-u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf);
+int amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf);
void amd_pmf_update_slider(struct amd_pmf_dev *dev, bool op, int idx,
struct amd_pmf_static_slider_granular *table);
int amd_pmf_init_sps(struct amd_pmf_dev *dev);
diff --git a/drivers/platform/x86/amd/pmf/sps.c b/drivers/platform/x86/amd/pmf/sps.c
index 8923e29cc6ca..dba7e36962dc 100644
--- a/drivers/platform/x86/amd/pmf/sps.c
+++ b/drivers/platform/x86/amd/pmf/sps.c
@@ -79,9 +79,9 @@ static int amd_pmf_profile_get(struct platform_profile_handler *pprof,
return 0;
}
-u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
+int amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
{
- u8 mode;
+ int mode;
switch (pmf->current_profile) {
case PLATFORM_PROFILE_PERFORMANCE:
@@ -95,7 +95,7 @@ u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
break;
default:
dev_err(pmf->dev, "Unknown Platform Profile.\n");
- break;
+ return -EOPNOTSUPP;
}
return mode;
@@ -105,10 +105,13 @@ static int amd_pmf_profile_set(struct platform_profile_handler *pprof,
enum platform_profile_option profile)
{
struct amd_pmf_dev *pmf = container_of(pprof, struct amd_pmf_dev, pprof);
- u8 mode;
+ int mode;
pmf->current_profile = profile;
mode = amd_pmf_get_pprof_modes(pmf);
+ if (mode < 0)
+ return mode;
+
amd_pmf_update_slider(pmf, SLIDER_OP_SET, mode, NULL);
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] platform/x86/amd/pmf: Fix clang unused variable warning
2022-08-19 17:45 [PATCH] platform/x86/amd/pmf: Fix clang unused variable warning Shyam Sundar S K
@ 2022-08-19 21:46 ` Nathan Chancellor
0 siblings, 0 replies; 2+ messages in thread
From: Nathan Chancellor @ 2022-08-19 21:46 UTC (permalink / raw)
To: Shyam Sundar S K; +Cc: hdegoede, markgross, platform-driver-x86, Patil.Reddy
Hi Shyam,
On Fri, Aug 19, 2022 at 11:15:58PM +0530, Shyam Sundar S K wrote:
> variable 'mode' is used uninitialized whenever switch default is taken
> in sps.c which leads to the following clang warning.
>
> ---
> drivers/platform/x86/amd/pmf/sps.c:96:2: error: variable 'mode' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
> default:
> ^~~~~~~
> drivers/platform/x86/amd/pmf/sps.c:101:9: note: uninitialized use occurs here
> return mode;
> ^~~~
> drivers/platform/x86/amd/pmf/sps.c:84:9: note: initialize the variable 'mode' to silence this warning
> u8 mode;
> ^
> = '\0'
> 1 error generated.
> ---
>
> Fix it by returning -EOPNOTSUPP in default case and also change the return
> type of the function amd_pmf_get_pprof_modes() to keep it similar like
> other drivers which implement platform_profile.
>
> Fixes: 4c71ae414474 ("platform/x86/amd/pmf: Add support SPS PMF feature")
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> ---
> drivers/platform/x86/amd/pmf/pmf.h | 2 +-
> drivers/platform/x86/amd/pmf/sps.c | 11 +++++++----
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/pmf.h b/drivers/platform/x86/amd/pmf/pmf.h
> index 7613ed2ef6e3..172610f93bd1 100644
> --- a/drivers/platform/x86/amd/pmf/pmf.h
> +++ b/drivers/platform/x86/amd/pmf/pmf.h
> @@ -303,7 +303,7 @@ int amd_pmf_init_metrics_table(struct amd_pmf_dev *dev);
> int amd_pmf_get_power_source(void);
>
> /* SPS Layer */
> -u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf);
> +int amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf);
> void amd_pmf_update_slider(struct amd_pmf_dev *dev, bool op, int idx,
> struct amd_pmf_static_slider_granular *table);
> int amd_pmf_init_sps(struct amd_pmf_dev *dev);
> diff --git a/drivers/platform/x86/amd/pmf/sps.c b/drivers/platform/x86/amd/pmf/sps.c
> index 8923e29cc6ca..dba7e36962dc 100644
> --- a/drivers/platform/x86/amd/pmf/sps.c
> +++ b/drivers/platform/x86/amd/pmf/sps.c
> @@ -79,9 +79,9 @@ static int amd_pmf_profile_get(struct platform_profile_handler *pprof,
> return 0;
> }
>
> -u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
> +int amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
> {
> - u8 mode;
> + int mode;
>
> switch (pmf->current_profile) {
> case PLATFORM_PROFILE_PERFORMANCE:
> @@ -95,7 +95,7 @@ u8 amd_pmf_get_pprof_modes(struct amd_pmf_dev *pmf)
> break;
> default:
> dev_err(pmf->dev, "Unknown Platform Profile.\n");
> - break;
> + return -EOPNOTSUPP;
> }
>
> return mode;
> @@ -105,10 +105,13 @@ static int amd_pmf_profile_set(struct platform_profile_handler *pprof,
> enum platform_profile_option profile)
> {
> struct amd_pmf_dev *pmf = container_of(pprof, struct amd_pmf_dev, pprof);
> - u8 mode;
> + int mode;
>
> pmf->current_profile = profile;
> mode = amd_pmf_get_pprof_modes(pmf);
I see a few other places where amd_pmf_get_pprof_modes() is called.
Should they be updated in this same way to handle a negative return
code?
Regardless, the change is what I envisioned so looks good to me.
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Cheers,
Nathan
> + if (mode < 0)
> + return mode;
> +
> amd_pmf_update_slider(pmf, SLIDER_OP_SET, mode, NULL);
> return 0;
> }
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-08-19 21:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-19 17:45 [PATCH] platform/x86/amd/pmf: Fix clang unused variable warning Shyam Sundar S K
2022-08-19 21:46 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).