s390: avoid double handling of "noexec" option
authorVasily Gorbik <gor@linux.ibm.com>
Tue, 22 Oct 2019 15:37:51 +0000 (17:37 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 31 Oct 2019 16:20:52 +0000 (17:20 +0100)
"noexec" option is already parsed during startup and its value is
exposed via noexec_disabled variable. Simply reuse that value during
machine facilities detection.

Suggested-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/early.c

index b432d63..2e99e01 100644 (file)
@@ -238,7 +238,7 @@ static __init void detect_machine_facilities(void)
                S390_lowcore.machine_flags |= MACHINE_FLAG_VX;
                __ctl_set_bit(0, 17);
        }
-       if (test_facility(130)) {
+       if (test_facility(130) && !noexec_disabled) {
                S390_lowcore.machine_flags |= MACHINE_FLAG_NX;
                __ctl_set_bit(0, 20);
        }
@@ -268,21 +268,6 @@ static int __init disable_vector_extension(char *str)
 }
 early_param("novx", disable_vector_extension);
 
-static int __init noexec_setup(char *str)
-{
-       bool enabled;
-       int rc;
-
-       rc = kstrtobool(str, &enabled);
-       if (!rc && !enabled) {
-               /* Disable no-execute support */
-               S390_lowcore.machine_flags &= ~MACHINE_FLAG_NX;
-               __ctl_clear_bit(0, 20);
-       }
-       return rc;
-}
-early_param("noexec", noexec_setup);
-
 static int __init cad_setup(char *str)
 {
        bool enabled;