[PATCH 4/8] ras: aest: Add panic_on_ue module parameter

Umang Chheda
2026-05-05T12:25:24Z

The driver unconditionally calls panic() whenever an unrecoverable,
uncontainable UE (UET_UC or UET_UEU) is detected. There is no way
for the user to suppress this behaviour, which makes it difficult to
test UE injection or to run in environments where a kernel panic on
every UE is undesirable.

Add a module parameter `aest_panic_on_ue` When set to 0 the driver
logs the UE and continues instead of panicking.

Usage:
# Boot time (kernel cmdline)
aest.aest_panic_on_ue=0

# Runtime
echo 0 > /sys/module/aest/parameters/aest_panic_on_ue

Signed-off-by: Umang Chheda <umang.chheda@oss.qualcomm.com>
---
drivers/ras/aest/aest-core.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/ras/aest/aest-core.c b/drivers/ras/aest/aest-core.c
index b4f4c975da1d..9ce782a66edf 100644
--- a/drivers/ras/aest/aest-core.c
+++ b/drivers/ras/aest/aest-core.c
@@ -22,6 +22,11 @@ DEFINE_PER_CPU(struct aest_device, percpu_adev);
#undef pr_fmt
#define pr_fmt(fmt) "AEST: " fmt

+static bool aest_panic_on_ue;
+module_param(aest_panic_on_ue, bool, 0644);
+MODULE_PARM_DESC(aest_panic_on_ue,
+ "Panic on unrecoverable error: 0=off 1=on (default: 1)");
+
#ifdef CONFIG_DEBUG_FS
struct dentry *aest_debugfs;
#endif
@@ -342,9 +347,11 @@ void aest_proc_record(struct aest_record *record, void *data, bool fake)
aest_record_info(
record,
"Simulated error! Skip panic due to fault injection\n");
- else
+ else if (aest_panic_on_ue)
aest_panic(record, &regs,
"AEST: unrecoverable error encountered");
+ else
+ aest_record_err(record, "UE detected, panic suppressed\n");
}

aest_log(record, &regs);

--
2.34.1