ARM: Set the XN bit on kernel mappings that do not need to be executable.
This covers the kernel stack, globals frame and device memory. We shouldn't be executing in any of these pages, so functionality should be unaffected. This is primarily a debugging aid.
This commit is contained in:
parent
3775341b9b
commit
86751e48f4
10 changed files with 38 additions and 38 deletions
|
|
@ -279,7 +279,7 @@ map_kernel_window(void)
|
|||
PPTR_GLOBALS_PAGE,
|
||||
VMReadOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
true, /* armParityEnabled */
|
||||
true /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -291,7 +291,7 @@ map_kernel_window(void)
|
|||
PPTR_KERNEL_STACK,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
true, /* armParityEnabled */
|
||||
true /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ map_kernel_devices(void)
|
|||
TIMER0_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -95,7 +95,7 @@ map_kernel_devices(void)
|
|||
GIC_CONTROLLER_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -105,7 +105,7 @@ map_kernel_devices(void)
|
|||
GIC_DISTRIBUTOR_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -118,7 +118,7 @@ map_kernel_devices(void)
|
|||
UART0_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ map_kernel_devices(void)
|
|||
DMTIMER0_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -88,7 +88,7 @@ map_kernel_devices(void)
|
|||
INTC_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -100,7 +100,7 @@ map_kernel_devices(void)
|
|||
WDT1_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -113,7 +113,7 @@ map_kernel_devices(void)
|
|||
UART0_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ map_kernel_devices(void)
|
|||
TIMER_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -330,7 +330,7 @@ map_kernel_devices(void)
|
|||
GIC_CONTROLLER_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -340,7 +340,7 @@ map_kernel_devices(void)
|
|||
GIC_DISTRIBUTOR_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -353,7 +353,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ map_kernel_devices(void)
|
|||
MCT_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -247,7 +247,7 @@ map_kernel_devices(void)
|
|||
GIC_CONTROLLER_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -257,7 +257,7 @@ map_kernel_devices(void)
|
|||
GIC_DISTRIBUTOR_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -269,7 +269,7 @@ map_kernel_devices(void)
|
|||
L2CC_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -282,7 +282,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ map_kernel_devices(void)
|
|||
MCT_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -306,7 +306,7 @@ map_kernel_devices(void)
|
|||
GIC_CONTROLLER_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -316,7 +316,7 @@ map_kernel_devices(void)
|
|||
GIC_DISTRIBUTOR_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -329,7 +329,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ map_kernel_devices(void)
|
|||
EPIT_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -240,7 +240,7 @@ map_kernel_devices(void)
|
|||
AVIC_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -252,7 +252,7 @@ map_kernel_devices(void)
|
|||
L2CC_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -265,7 +265,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ map_kernel_devices(void)
|
|||
ARM_MP_PPTR1,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -217,7 +217,7 @@ map_kernel_devices(void)
|
|||
ARM_MP_PPTR2,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -229,7 +229,7 @@ map_kernel_devices(void)
|
|||
L2CC_PL310_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -243,7 +243,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ map_kernel_devices(void)
|
|||
GPTIMER11_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -190,7 +190,7 @@ map_kernel_devices(void)
|
|||
INTC_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -203,7 +203,7 @@ map_kernel_devices(void)
|
|||
UART3_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ map_kernel_devices(void)
|
|||
ARM_MP_PPTR1,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -149,7 +149,7 @@ map_kernel_devices(void)
|
|||
ARM_MP_PPTR2,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -161,7 +161,7 @@ map_kernel_devices(void)
|
|||
L2CC_PL310_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
@ -175,7 +175,7 @@ map_kernel_devices(void)
|
|||
UART_PPTR,
|
||||
VMKernelOnly,
|
||||
vm_attributes_new(
|
||||
false, /* armExecuteNever */
|
||||
true, /* armExecuteNever */
|
||||
false, /* armParityEnabled */
|
||||
false /* armPageCacheable */
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue