Page MenuHomeFreeBSD

arm64: Clean up enabling in-kernel BTI
ClosedPublic

Authored by andrew on Feb 27 2025, 9:17 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 21, 2:17 PM
Unknown Object (File)
Mon, Apr 21, 2:16 PM
Unknown Object (File)
Mon, Apr 21, 2:16 PM
Unknown Object (File)
Mon, Apr 21, 2:04 PM
Unknown Object (File)
Mon, Apr 21, 1:49 PM
Unknown Object (File)
Thu, Apr 17, 2:46 AM
Unknown Object (File)
Thu, Apr 10, 8:45 PM
Unknown Object (File)
Wed, Apr 9, 5:06 AM
Subscribers

Details

Summary

Some hypervisors incorrectly use the Guarded Page (GP) bit from the
last level page table as part of the output address. This causes them
to raise an address size exception as the calculated physical address
is too large.

Only set the GP bit in the page table when BTI is present.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj added inline comments.
sys/arm64/arm64/pmap.c
185–186

For consistency with other uses of the __read_mostly annotation.

This revision is now accepted and ready to land.Feb 27 2025, 2:41 PM
alc added inline comments.
sys/arm64/arm64/locore.S
500

Typo fix.

This revision was automatically updated to reflect the committed changes.