summaryrefslogtreecommitdiffstats
path: root/arch/s390/boot/ipl_parm.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/boot/ipl_parm.c')
-rw-r--r--arch/s390/boot/ipl_parm.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/s390/boot/ipl_parm.c b/arch/s390/boot/ipl_parm.c
index 7f8e546400a1..9dab596be98e 100644
--- a/arch/s390/boot/ipl_parm.c
+++ b/arch/s390/boot/ipl_parm.c
@@ -13,6 +13,7 @@ int __bootdata(early_ipl_block_valid);
unsigned long __bootdata(memory_end);
int __bootdata(memory_end_set);
+int __bootdata(noexec_disabled);
static inline int __diag308(unsigned long subcode, void *addr)
{
@@ -145,8 +146,10 @@ void setup_boot_command_line(void)
static char command_line_buf[COMMAND_LINE_SIZE] __section(.data);
static void parse_mem_opt(void)
{
- char *args;
char *param, *val;
+ bool enabled;
+ char *args;
+ int rc;
args = strcpy(command_line_buf, early_command_line);
while (*args) {
@@ -156,6 +159,12 @@ static void parse_mem_opt(void)
memory_end = memparse(val, NULL);
memory_end_set = 1;
}
+
+ if (!strcmp(param, "noexec")) {
+ rc = kstrtobool(val, &enabled);
+ if (!rc && !enabled)
+ noexec_disabled = 1;
+ }
}
}