Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F164534167
D39451.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D39451.diff
View Options
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -3968,6 +3968,10 @@
mask |= ATTR_S1_XN;
nbits |= ATTR_S1_XN;
}
+ if ((flags & PMAP_ENTER_BTI) != 0) {
+ mask |= ATTR_S1_GP;
+ nbits |= ATTR_S1_GP;
+ }
if (mask == 0)
return;
@@ -4369,6 +4373,8 @@
if ((flags & PMAP_ENTER_WIRED) != 0)
new_l3 |= ATTR_SW_WIRED;
+ if ((flags & PMAP_ENTER_BTI) != 0)
+ new_l3 |= ATTR_S1_GP;
if (pmap->pm_stage == PM_STAGE1) {
if (!ADDR_IS_KERNEL(va))
new_l3 |= ATTR_S1_AP(ATTR_S1_AP_USER) | ATTR_S1_PXN;
@@ -4687,6 +4693,8 @@
if ((prot & VM_PROT_EXECUTE) == 0 ||
m->md.pv_memattr == VM_MEMATTR_DEVICE)
new_l2 |= ATTR_S1_XN;
+ if ((flags & PMAP_ENTER_BTI) != 0)
+ new_l2 |= ATTR_S1_GP;
if (!ADDR_IS_KERNEL(va))
new_l2 |= ATTR_S1_AP(ATTR_S1_AP_USER) | ATTR_S1_PXN;
else
@@ -5025,6 +5033,8 @@
if ((prot & VM_PROT_EXECUTE) == 0 ||
m->md.pv_memattr == VM_MEMATTR_DEVICE)
l3_val |= ATTR_S1_XN;
+ if ((flags & PMAP_ENTER_BTI) != 0)
+ l3_val |= ATTR_S1_GP;
if (!ADDR_IS_KERNEL(va))
l3_val |= ATTR_S1_AP(ATTR_S1_AP_USER) | ATTR_S1_PXN;
else
diff --git a/sys/arm64/include/pte.h b/sys/arm64/include/pte.h
--- a/sys/arm64/include/pte.h
+++ b/sys/arm64/include/pte.h
@@ -70,6 +70,7 @@
#define ATTR_CONTIGUOUS (1UL << 52)
#define ATTR_DBM (1UL << 51)
+#define ATTR_S1_GP (1UL << 50)
#define ATTR_S1_nG (1 << 11)
#define ATTR_AF (1 << 10)
#define ATTR_SH(x) ((x) << 8)
diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h
--- a/sys/vm/pmap.h
+++ b/sys/vm/pmap.h
@@ -107,6 +107,7 @@
#define PMAP_ENTER_NOSLEEP 0x00000100
#define PMAP_ENTER_WIRED 0x00000200
#define PMAP_ENTER_LARGEPAGE 0x00000400
+#define PMAP_ENTER_BTI 0x00800000
#define PMAP_ENTER_RESERVED 0xFF000000
/*
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Aug 2, 9:56 PM (17 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35840248
Default Alt Text
D39451.diff (1 KB)
Attached To
Mode
D39451: Add BTI support to the arm64 pmap
Attached
Detach File
Event Timeline
Log In to Comment