diff options
| -rw-r--r-- | arch/s390/lib/uaccess_mvcos.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/s390/lib/uaccess_mvcos.c b/arch/s390/lib/uaccess_mvcos.c index e2685ff2ec4b..ae97b8df11aa 100644 --- a/arch/s390/lib/uaccess_mvcos.c +++ b/arch/s390/lib/uaccess_mvcos.c | |||
| @@ -241,9 +241,22 @@ long __strncpy_from_user(char *dst, const char __user *src, long count) | |||
| 241 | } | 241 | } |
| 242 | EXPORT_SYMBOL(__strncpy_from_user); | 242 | EXPORT_SYMBOL(__strncpy_from_user); |
| 243 | 243 | ||
| 244 | /* | ||
| 245 | * The uaccess page tabe walk variant can be enforced with the "uaccesspt" | ||
| 246 | * kernel parameter. This is mainly for debugging purposes. | ||
| 247 | */ | ||
| 248 | static int force_uaccess_pt __initdata; | ||
| 249 | |||
| 250 | static int __init parse_uaccess_pt(char *__unused) | ||
| 251 | { | ||
| 252 | force_uaccess_pt = 1; | ||
| 253 | return 0; | ||
| 254 | } | ||
| 255 | early_param("uaccesspt", parse_uaccess_pt); | ||
| 256 | |||
| 244 | static int __init uaccess_init(void) | 257 | static int __init uaccess_init(void) |
| 245 | { | 258 | { |
| 246 | if (IS_ENABLED(CONFIG_32BIT) || !test_facility(27)) | 259 | if (IS_ENABLED(CONFIG_32BIT) || force_uaccess_pt || !test_facility(27)) |
| 247 | static_key_slow_dec(&have_mvcos); | 260 | static_key_slow_dec(&have_mvcos); |
| 248 | return 0; | 261 | return 0; |
| 249 | } | 262 | } |
