Page MenuHomeFreeBSD

Use the execute-never bits on arm64
ClosedPublic

Authored by andrew on Apr 11 2017, 3:35 PM.
Tags
None
Referenced Files
F153299254: D10360.id.diff
Mon, Apr 20, 8:14 AM
F153242758: D10360.diff
Mon, Apr 20, 12:41 AM
F153242709: D10360.diff
Mon, Apr 20, 12:41 AM
F153195311: D10360.id27354.diff
Sun, Apr 19, 5:56 PM
Unknown Object (File)
Sun, Apr 12, 12:37 PM
Unknown Object (File)
Thu, Apr 9, 5:23 PM
Unknown Object (File)
Thu, Apr 9, 11:54 AM
Unknown Object (File)
Wed, Apr 8, 6:27 AM
Subscribers

Details

Summary

Start to use the User and Privileged execute-never bits. This sets both bits when entering an address we know shouldn't be executed.

I expect we could mark all userspace pages as Privileged execute-never to ensure the kernel doesn't branch to one of these addresses.

While here add the ARMv8.1 upper attributes.

Test Plan

Netboot on a ThunderX to multiuser.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 8698
Build 9032: CI src buildJenkins

Event Timeline

This revision is now accepted and ready to land.Apr 11 2017, 4:52 PM
sys/arm64/arm64/pmap.c
2433–2434

My impression is that r271716 would also apply to arm64.

andrew edited edge metadata.

Update the check in pmap_protect to be the same as rS271716

This revision now requires review to proceed.Apr 12 2017, 11:49 AM
This revision is now accepted and ready to land.Apr 12 2017, 3:38 PM
This revision was automatically updated to reflect the committed changes.