When HWP (Hardware P-states) is disabled, dynamic SST features are
disabled. But user should still be able to read the current core-power
state, with legacy P-states. This will allow users to read current
configuration with static SST enabled from BIOS.
To address this, do not call disable_dynamic_sst_features() when the
request is for reading the state.
Signed-off-by: Srinivas Pandruvada <[email protected]>
---
drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
index 2662fbbddf0c..1d918000d72b 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
@@ -462,10 +462,10 @@ static long isst_if_core_power_state(void __user *argp)
struct tpmi_per_power_domain_info *power_domain_info;
struct isst_core_power core_power;
- if (disable_dynamic_sst_features())
+ if (copy_from_user(&core_power, argp, sizeof(core_power)))
return -EFAULT;
- if (copy_from_user(&core_power, argp, sizeof(core_power)))
+ if (core_power.get_set && disable_dynamic_sst_features())
return -EFAULT;
power_domain_info = get_instance(core_power.socket_id, core_power.power_domain_id);
--
2.40.1
On Wed, 28 Feb 2024, Srinivas Pandruvada wrote:
> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
>
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
>
> Signed-off-by: Srinivas Pandruvada <[email protected]>
Is this a fix? (It's lacking the tag if it is).
--
i.
> ---
> drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> index 2662fbbddf0c..1d918000d72b 100644
> --- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> +++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> @@ -462,10 +462,10 @@ static long isst_if_core_power_state(void __user *argp)
> struct tpmi_per_power_domain_info *power_domain_info;
> struct isst_core_power core_power;
>
> - if (disable_dynamic_sst_features())
> + if (copy_from_user(&core_power, argp, sizeof(core_power)))
> return -EFAULT;
>
> - if (copy_from_user(&core_power, argp, sizeof(core_power)))
> + if (core_power.get_set && disable_dynamic_sst_features())
> return -EFAULT;
>
> power_domain_info = get_instance(core_power.socket_id, core_power.power_domain_id);
>
On Thu, 2024-02-29 at 14:32 +0200, Ilpo Järvinen wrote:
> On Wed, 28 Feb 2024, Srinivas Pandruvada wrote:
>
> > When HWP (Hardware P-states) is disabled, dynamic SST features are
> > disabled. But user should still be able to read the current core-
> > power
> > state, with legacy P-states. This will allow users to read current
> > configuration with static SST enabled from BIOS.
> >
> > To address this, do not call disable_dynamic_sst_features() when
> > the
> > request is for reading the state.
> >
> > Signed-off-by: Srinivas Pandruvada
> > <[email protected]>
>
> Is this a fix? (It's lacking the tag if it is).
This is not a fix. This is a feature request from a customer.
Some customer wants to use in certain way.
Thanks,
Srinivas
>
On 2/28/24 4:26 PM, Srinivas Pandruvada wrote:
> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
>
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
>
> Signed-off-by: Srinivas Pandruvada <[email protected]>
> ---
Looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan <[email protected]>
> drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> index 2662fbbddf0c..1d918000d72b 100644
> --- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> +++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> @@ -462,10 +462,10 @@ static long isst_if_core_power_state(void __user *argp)
> struct tpmi_per_power_domain_info *power_domain_info;
> struct isst_core_power core_power;
>
> - if (disable_dynamic_sst_features())
> + if (copy_from_user(&core_power, argp, sizeof(core_power)))
> return -EFAULT;
>
> - if (copy_from_user(&core_power, argp, sizeof(core_power)))
> + if (core_power.get_set && disable_dynamic_sst_features())
> return -EFAULT;
>
> power_domain_info = get_instance(core_power.socket_id, core_power.power_domain_id);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On Wed, 28 Feb 2024 16:26:59 -0800, Srinivas Pandruvada wrote:
> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
>
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
>
> [...]
Thank you for your contribution, it has been applied to my local
review-ilpo branch. Note it will show up in the public
platform-drivers-x86/review-ilpo branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/1] platform/x86: ISST: Allow reading core-power state on HWP disabled systems
commit: 959e640cf7b2d456052b346fa50574242ca56aaa
--
i.