mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 15:27:34 +00:00
Kernel/aarch64: Detect if access faults come from SafeMem
This commit lets us differentiate whether access faults are caused by accessing junk memory addresses given to us by userspace or if we hit a kernel bug. The stub implementations of the `safe_*` functions currently don't let us jump back into them and return a value indicating failure, so we panic if such a fault happens. Practically, this means that we still crash, but if the access violation was caused by something else, we take the usual kernel crash code path and print a register and memory dump, rather than hitting the `TODO_AARCH64` in `handle_safe_access_fault`.
This commit is contained in:
parent
0da2d2102a
commit
beb55f726f
2 changed files with 47 additions and 10 deletions
|
@ -20,6 +20,14 @@ SECTIONS
|
|||
.text ALIGN(4K) : AT (ADDR(.text) - KERNEL_MAPPING_BASE)
|
||||
{
|
||||
*(.text.first)
|
||||
|
||||
start_of_safemem_text = .;
|
||||
KEEP(*(.text.safemem))
|
||||
end_of_safemem_text = .;
|
||||
start_of_safemem_atomic_text = .;
|
||||
KEEP(*(.text.safemem.atomic))
|
||||
end_of_safemem_atomic_text = .;
|
||||
|
||||
*(.text*)
|
||||
} :text
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue