Page MenuHomeFreeBSD

arm64: Raise a SIGBUS on a user external abort
ClosedPublic

Authored by andrew on Sep 29 2023, 1:59 PM.
Tags
None
Referenced Files
F114911813: D42018.id128003.diff
Fri, Apr 18, 11:06 AM
F114890527: D42018.id128000.diff
Fri, Apr 18, 4:51 AM
Unknown Object (File)
Wed, Apr 16, 9:39 PM
Unknown Object (File)
Sat, Apr 5, 11:20 AM
Unknown Object (File)
Mar 4 2025, 7:22 AM
Unknown Object (File)
Feb 15 2025, 7:55 PM
Unknown Object (File)
Feb 7 2025, 10:59 PM
Unknown Object (File)
Feb 6 2025, 6:57 AM
Subscribers

Details

Summary

When userspace triggers an external abort allow it to handle the abort
by raising a SIGBUS.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 53766
Build 50657: arc lint + arc unit

Event Timeline

sys/arm64/arm64/trap.c
230

Does this mean that userspace can't reliably distinguish between a SIGBUS due to a vm_fault() failure and a SIGBUS due to an external abort?

239

No need to test !lower now.

246

Same here.

Remove unneeded lower checks

sys/arm64/arm64/trap.c
230

The app gets the fault address from FAR, which should be enough for it to understand the specific mapping that caused the trap.

In other words, I think that there is no need for additional arch-specific BUS_XXX code for this situation.

This revision is now accepted and ready to land.Oct 11 2023, 5:38 PM