[PATCH] ipmi: ssif_bmc: Move smbus_cmd assignment after cleanup

From: Cosmo Chou
Date: Wed Jan 01 2025 - 11:54:46 EST


Move smbus_cmd assignment to the end of process_smbus_cmd() to ensure
the new command is not lost when complete_response() is triggered.

Fixes: dd2bc5cc9e25 ("ipmi: ssif_bmc: Add SSIF BMC driver")
Signed-off-by: Cosmo Chou <chou.cosmo@xxxxxxxxx>
---
drivers/char/ipmi/ssif_bmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/ipmi/ssif_bmc.c b/drivers/char/ipmi/ssif_bmc.c
index a14fafc583d4..7a4f52987a7d 100644
--- a/drivers/char/ipmi/ssif_bmc.c
+++ b/drivers/char/ipmi/ssif_bmc.c
@@ -579,7 +579,6 @@ static void process_request_part(struct ssif_bmc_ctx *ssif_bmc)
static void process_smbus_cmd(struct ssif_bmc_ctx *ssif_bmc, u8 *val)
{
/* SMBUS command can vary (single or multi-part) */
- ssif_bmc->part_buf.smbus_cmd = *val;
ssif_bmc->msg_idx = 1;
memset(&ssif_bmc->part_buf.payload[0], 0, MAX_PAYLOAD_PER_TRANSACTION);

@@ -596,6 +595,7 @@ static void process_smbus_cmd(struct ssif_bmc_ctx *ssif_bmc, u8 *val)
if (ssif_bmc->aborting)
ssif_bmc->aborting = false;
}
+ ssif_bmc->part_buf.smbus_cmd = *val;
}

static void on_read_requested_event(struct ssif_bmc_ctx *ssif_bmc, u8 *val)
--
2.34.1