[PATCH 16/28] mfd: loongson-se: Zero-initialise controller command structures
From: Lee Jones
Date: Wed Oct 21 2026 - 08:36:36 EST
loongson_se_init() and loongson_se_init_engine() declare struct
loongson_se_controller_cmd on the stack without zero-initialising it
and only populate a subset of its fields before
loongson_se_send_controller_cmd() writes all eight 32-bit words to the
controller MMIO registers. Zero-initialise the stack command structures
so that unused words do not leak residual kernel stack contents to the
hardware.
Fixes: e551fa3159e3 ("mfd: Add support for Loongson Security Engine chip controller")
Closes: https://sashiko.dev/#/bug/linux-b81dca3d-6812-43b6-9ad9-912727674154
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Lee Jones <lee@xxxxxxxxxx>
---
drivers/mfd/loongson-se.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mfd/loongson-se.c b/drivers/mfd/loongson-se.c
index 8dcb90a067b3..485ee4a6ca5e 100644
--- a/drivers/mfd/loongson-se.c
+++ b/drivers/mfd/loongson-se.c
@@ -93,7 +93,7 @@ struct loongson_se_engine *loongson_se_init_engine(struct device *dev, int id)
{
struct loongson_se *se = dev_get_drvdata(dev);
struct loongson_se_engine *engine = &se->engines[id];
- struct loongson_se_controller_cmd cmd;
+ struct loongson_se_controller_cmd cmd = {};
engine->se = se;
engine->id = id;
@@ -162,7 +162,7 @@ static irqreturn_t se_irq_handler(int irq, void *dev_id)
static int loongson_se_init(struct loongson_se *se, dma_addr_t addr, int size)
{
- struct loongson_se_controller_cmd cmd;
+ struct loongson_se_controller_cmd cmd = {};
int err;
cmd.command_id = SE_CMD_START;
--
2.56.0.218.g1ec904b173-goog