RTIC: Move selinux_state to a separate 4k

We need to relocate selinux_state to a separate 4k page
to enable EL2 Hypervisor to monitor changes to this
variable using ARM stage 2 MMU. We will avoid getting
page faults from un-related data as the MMU granularity
is configured to 4k.

Change-Id: I7d0e5c9eae0a2a65ca9db73e85283e164e20c11c
Signed-off-by: Preeti Nagar <pnagar@codeaurora.org>
This commit is contained in:
Preeti Nagar 2020-06-08 15:35:33 +05:30
parent cb9b03954c
commit 55c09c9b96
3 changed files with 17 additions and 0 deletions

View File

@ -5,6 +5,15 @@
* Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*/
#ifdef CONFIG_QCOM_RTIC
#define BSS_FIRST_SECTIONS \
. = ALIGN(PAGE_SIZE); \
KEEP(*(.bss.rtic)) \
. = ALIGN(PAGE_SIZE);
#else
#define BSS_FIRST_SECTIONS
#endif
#include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h>
#include <asm/kernel-pgtable.h>

View File

@ -322,6 +322,10 @@ void __init parse_early_options(char *cmdline);
/* Data marked not to be saved by software suspend */
#define __nosavedata __section(.data..nosave)
#ifdef CONFIG_QCOM_RTIC
#define __rticdata __section(.bss.rtic)
#endif
#ifdef MODULE
#define __exit_p(x) x
#else

View File

@ -103,7 +103,11 @@
#include "audit.h"
#include "avc_ss.h"
#ifdef CONFIG_QCOM_RTIC
struct selinux_state selinux_state __rticdata;
#else
struct selinux_state selinux_state;
#endif
/* SECMARK reference count */
static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);