[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20240312065908.12194-1-yeoreum.yun@arm.com>
Date: Tue, 12 Mar 2024 06:59:08 +0000
From: "levi.yun" <yeoreum.yun@....com>
To: james.morse@....com,
will@...nel.org,
pierre.gondois@....com
Cc: linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
nd@....com,
"levi.yun" <yeoreum.yun@....com>
Subject: [PATCH RESEND] firmware/arm_sdei: Fix invalid argument to unregister private events.
To unregister private events in device freeze, it should call
cpuhp_remove_state() with sedi_hp_state not sdei_entry_point.
otherwise, it seems to fail on cpuhp_cb_check().
Fixes: d2c48b2387eb ("firmware: arm_sdei: Fix sleep from invalid context BUG")
Signed-off-by: levi.yun <yeoreum.yun@....com>
Reviewed-by: James Morse <james.morse@....com>
---
drivers/firmware/arm_sdei.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index 285fe7ad490d..973972d50287 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -763,7 +763,9 @@ static int sdei_device_freeze(struct device *dev)
int err;
/* unregister private events */
- cpuhp_remove_state(sdei_entry_point);
+ cpuhp_remove_state(sdei_hp_state);
+
+ sdei_hp_state = 0;
err = sdei_unregister_shared();
if (err)
--
LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
Powered by blists - more mailing lists