diff options
| author | Shuai Xue <[email protected]> | 2025-07-14 11:42:11 +0000 |
|---|---|---|
| committer | Rafael J. Wysocki <[email protected]> | 2025-07-16 19:08:04 +0000 |
| commit | 79a5ae3c4c5eb7e38e0ebe4d6bf602d296080060 (patch) | |
| tree | c323cffad50e4ae55cf9c2f1c8add0353959b830 /lib/crypto/mpi/mpiutil.c | |
| parent | ACPI: APEI: MAINTAINERS: Update reviewers for APEI (diff) | |
| download | kernel-79a5ae3c4c5eb7e38e0ebe4d6bf602d296080060.tar.gz kernel-79a5ae3c4c5eb7e38e0ebe4d6bf602d296080060.zip | |
ACPI: APEI: send SIGBUS to current task if synchronous memory error not recovered
If a synchronous error is detected as a result of user-space process
triggering a 2-bit uncorrected error, the CPU will take a synchronous
error exception such as Synchronous External Abort (SEA) on Arm64. The
kernel will queue a memory_failure() work which poisons the related
page, unmaps the page, and then sends a SIGBUS to the process, so that
a system wide panic can be avoided.
However, no memory_failure() work will be queued when abnormal
synchronous errors occur. These errors can include situations like
invalid PA, unexpected severity, no memory failure config support,
invalid GUID section, etc. In such a case, the user-space process will
trigger SEA again. This loop can potentially exceed the platform
firmware threshold or even trigger a kernel hard lockup, leading to a
system reboot.
Fix it by performing a force kill if no memory_failure() work is queued
for synchronous errors.
Signed-off-by: Shuai Xue <[email protected]>
Reviewed-by: Jarkko Sakkinen <[email protected]>
Reviewed-by: Jonathan Cameron <[email protected]>
Reviewed-by: Yazen Ghannam <[email protected]>
Reviewed-by: Jane Chu <[email protected]>
Reviewed-by: Hanjun Guo <[email protected]>
Link: https://patch.msgid.link/[email protected]
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <[email protected]>
Diffstat (limited to 'lib/crypto/mpi/mpiutil.c')
0 files changed, 0 insertions, 0 deletions
