summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2026-03-26 11:24:46 -0700
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2026-03-31 18:45:11 +0300
commit8e0a2fc68ec369f2b6755994da1d318d0898a9d9 (patch)
treeed838305150de1f19729f51c6848f1a3aa3d2742 /drivers
parent9ec6bf62cf98e30c7126a0f51ee7cdf2e8d458b6 (diff)
downloadlinux-next-8e0a2fc68ec369f2b6755994da1d318d0898a9d9.tar.gz
linux-next-8e0a2fc68ec369f2b6755994da1d318d0898a9d9.zip
platform/x86/intel/tpmi: Use 32 bit aligned address for debugfs mem write
The memory write feature supports 32-bit writes to any TPMI offset. However, future hardware generations may not allow writes to non-32-bit aligned addresses due to hardware optimizations. Since all TPMI addresses are 64-bit aligned and correspond to 64-bit registers, enforce 32-bit alignment for write operations. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://patch.msgid.link/20260326182446.3478672-1-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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/platform/x86/intel/vsec_tpmi.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/platform/x86/intel/vsec_tpmi.c b/drivers/platform/x86/intel/vsec_tpmi.c
index 9dddf4e5863e..7fc6ff8d1040 100644
--- a/drivers/platform/x86/intel/vsec_tpmi.c
+++ b/drivers/platform/x86/intel/vsec_tpmi.c
@@ -46,6 +46,7 @@
* provided by the Intel VSEC driver.
*/
+#include <linux/align.h>
#include <linux/auxiliary_bus.h>
#include <linux/bitfield.h>
#include <linux/debugfs.h>
@@ -479,6 +480,9 @@ static ssize_t mem_write(struct file *file, const char __user *userbuf, size_t l
addr = array[2];
value = array[3];
+ if (!IS_ALIGNED(addr, sizeof(u32)))
+ return -EINVAL;
+
if (punit >= pfs->pfs_header.num_entries) {
ret = -EINVAL;
goto exit_write;