diff options
| author | Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> | 2026-08-11 15:15:11 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-09-07 17:18:19 +0200 |
| commit | 52f1e6dca7ea95466b1bba0bd27c33d5337b4679 (patch) | |
| tree | f415666055422401edd3b2ca8c3c4b78b3c596ef | |
| parent | c9ee2770eb95ba316a56d776b2b66666b70c194b (diff) | |
| download | linux-52f1e6dca7ea95466b1bba0bd27c33d5337b4679.tar.gz linux-52f1e6dca7ea95466b1bba0bd27c33d5337b4679.zip | |
platform/x86: ISST: Validate parameter for core power state
commit 1700b4f804555467b7eff58dff7acc11d508b3a1 upstream.
Allow only 0 or 1 for core_power enable and priority_type parameters.
Fixes: 12a7d2cb811d ("platform/x86: ISST: Add SST-CP support via TPMI")
Cc: stable@vger.kernel.org
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/20260811221514.3905817-4-srinivas.pandruvada@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 7 |
1 files changed, 7 insertions, 0 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 eaf98f1daaee..23f79b884cf8 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 @@ -597,6 +597,9 @@ static bool disable_dynamic_sst_features(void) #define SST_CP_PRIORITY_TYPE_START 1 #define SST_CP_PRIORITY_TYPE_WIDTH 1 +#define SST_CP_MAX_ENABLE 1 +#define SST_CP_MAX_PRIORITY_TYPE 1 + static long isst_if_core_power_state(void __user *argp) { struct tpmi_per_power_domain_info *power_domain_info; @@ -616,6 +619,10 @@ static long isst_if_core_power_state(void __user *argp) if (power_domain_info->write_blocked) return -EPERM; + if (core_power.enable > SST_CP_MAX_ENABLE || + core_power.priority_type > SST_CP_MAX_PRIORITY_TYPE) + return -EINVAL; + _write_cp_info("cp_enable", core_power.enable, SST_CP_CONTROL_OFFSET, SST_CP_ENABLE_START, SST_CP_ENABLE_WIDTH, SST_MUL_FACTOR_NONE) _write_cp_info("cp_prio_type", core_power.priority_type, SST_CP_CONTROL_OFFSET, |
