Loading arch/s390/include/asm/mmu_context.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ static inline void update_mm(struct mm_struct *mm, struct task_struct *tsk) pgd_t *pgd = mm->pgd; S390_lowcore.user_asce = mm->context.asce_bits | __pa(pgd); if (user_mode != HOME_SPACE_MODE) { if (addressing_mode != HOME_SPACE_MODE) { /* Load primary space page table origin. */ asm volatile(LCTL_OPCODE" 1,1,%0\n" : : "m" (S390_lowcore.user_asce) ); Loading arch/s390/include/asm/setup.h +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ void create_mem_hole(struct mem_chunk memory_chunk[], unsigned long addr, #define SECONDARY_SPACE_MODE 2 #define HOME_SPACE_MODE 3 extern unsigned int user_mode; extern unsigned int addressing_mode; /* * Machine features detected in head.S Loading arch/s390/kernel/setup.c +6 −6 Original line number Diff line number Diff line Loading @@ -302,8 +302,8 @@ static int __init parse_vmalloc(char *arg) } early_param("vmalloc", parse_vmalloc); unsigned int user_mode = HOME_SPACE_MODE; EXPORT_SYMBOL_GPL(user_mode); unsigned int addressing_mode = HOME_SPACE_MODE; EXPORT_SYMBOL_GPL(addressing_mode); static int set_amode_primary(void) { Loading @@ -328,7 +328,7 @@ static int set_amode_primary(void) */ static int __init early_parse_switch_amode(char *p) { user_mode = PRIMARY_SPACE_MODE; addressing_mode = PRIMARY_SPACE_MODE; return 0; } early_param("switch_amode", early_parse_switch_amode); Loading @@ -336,9 +336,9 @@ early_param("switch_amode", early_parse_switch_amode); static int __init early_parse_user_mode(char *p) { if (p && strcmp(p, "primary") == 0) user_mode = PRIMARY_SPACE_MODE; addressing_mode = PRIMARY_SPACE_MODE; else if (!p || strcmp(p, "home") == 0) user_mode = HOME_SPACE_MODE; addressing_mode = HOME_SPACE_MODE; else return 1; return 0; Loading @@ -347,7 +347,7 @@ early_param("user_mode", early_parse_user_mode); static void setup_addressing_mode(void) { if (user_mode == PRIMARY_SPACE_MODE) { if (addressing_mode == PRIMARY_SPACE_MODE) { if (set_amode_primary()) pr_info("Address spaces switched, " "mvcos available\n"); Loading arch/s390/kernel/vdso.c +5 −4 Original line number Diff line number Diff line Loading @@ -84,7 +84,8 @@ struct vdso_data *vdso_data = &vdso_data_store.data; */ static void vdso_init_data(struct vdso_data *vd) { vd->ectg_available = user_mode != HOME_SPACE_MODE && test_facility(31); vd->ectg_available = addressing_mode != HOME_SPACE_MODE && test_facility(31); } #ifdef CONFIG_64BIT Loading @@ -101,7 +102,7 @@ int vdso_alloc_per_cpu(struct _lowcore *lowcore) lowcore->vdso_per_cpu_data = __LC_PASTE; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return 0; segment_table = __get_free_pages(GFP_KERNEL, SEGMENT_ORDER); Loading Loading @@ -146,7 +147,7 @@ void vdso_free_per_cpu(struct _lowcore *lowcore) unsigned long segment_table, page_table, page_frame; u32 *psal, *aste; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return; psal = (u32 *)(addr_t) lowcore->paste[4]; Loading @@ -164,7 +165,7 @@ static void vdso_init_cr5(void) { unsigned long cr5; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return; cr5 = offsetof(struct _lowcore, paste); __ctl_load(cr5, 5, 5); Loading arch/s390/mm/fault.c +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ static inline int user_space_fault(unsigned long trans_exc_code) if (trans_exc_code == 2) /* Access via secondary space, set_fs setting decides */ return current->thread.mm_segment.ar4; if (user_mode == HOME_SPACE_MODE) if (addressing_mode == HOME_SPACE_MODE) /* User space if the access has been done via home space. */ return trans_exc_code == 3; /* Loading Loading
arch/s390/include/asm/mmu_context.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ static inline void update_mm(struct mm_struct *mm, struct task_struct *tsk) pgd_t *pgd = mm->pgd; S390_lowcore.user_asce = mm->context.asce_bits | __pa(pgd); if (user_mode != HOME_SPACE_MODE) { if (addressing_mode != HOME_SPACE_MODE) { /* Load primary space page table origin. */ asm volatile(LCTL_OPCODE" 1,1,%0\n" : : "m" (S390_lowcore.user_asce) ); Loading
arch/s390/include/asm/setup.h +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ void create_mem_hole(struct mem_chunk memory_chunk[], unsigned long addr, #define SECONDARY_SPACE_MODE 2 #define HOME_SPACE_MODE 3 extern unsigned int user_mode; extern unsigned int addressing_mode; /* * Machine features detected in head.S Loading
arch/s390/kernel/setup.c +6 −6 Original line number Diff line number Diff line Loading @@ -302,8 +302,8 @@ static int __init parse_vmalloc(char *arg) } early_param("vmalloc", parse_vmalloc); unsigned int user_mode = HOME_SPACE_MODE; EXPORT_SYMBOL_GPL(user_mode); unsigned int addressing_mode = HOME_SPACE_MODE; EXPORT_SYMBOL_GPL(addressing_mode); static int set_amode_primary(void) { Loading @@ -328,7 +328,7 @@ static int set_amode_primary(void) */ static int __init early_parse_switch_amode(char *p) { user_mode = PRIMARY_SPACE_MODE; addressing_mode = PRIMARY_SPACE_MODE; return 0; } early_param("switch_amode", early_parse_switch_amode); Loading @@ -336,9 +336,9 @@ early_param("switch_amode", early_parse_switch_amode); static int __init early_parse_user_mode(char *p) { if (p && strcmp(p, "primary") == 0) user_mode = PRIMARY_SPACE_MODE; addressing_mode = PRIMARY_SPACE_MODE; else if (!p || strcmp(p, "home") == 0) user_mode = HOME_SPACE_MODE; addressing_mode = HOME_SPACE_MODE; else return 1; return 0; Loading @@ -347,7 +347,7 @@ early_param("user_mode", early_parse_user_mode); static void setup_addressing_mode(void) { if (user_mode == PRIMARY_SPACE_MODE) { if (addressing_mode == PRIMARY_SPACE_MODE) { if (set_amode_primary()) pr_info("Address spaces switched, " "mvcos available\n"); Loading
arch/s390/kernel/vdso.c +5 −4 Original line number Diff line number Diff line Loading @@ -84,7 +84,8 @@ struct vdso_data *vdso_data = &vdso_data_store.data; */ static void vdso_init_data(struct vdso_data *vd) { vd->ectg_available = user_mode != HOME_SPACE_MODE && test_facility(31); vd->ectg_available = addressing_mode != HOME_SPACE_MODE && test_facility(31); } #ifdef CONFIG_64BIT Loading @@ -101,7 +102,7 @@ int vdso_alloc_per_cpu(struct _lowcore *lowcore) lowcore->vdso_per_cpu_data = __LC_PASTE; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return 0; segment_table = __get_free_pages(GFP_KERNEL, SEGMENT_ORDER); Loading Loading @@ -146,7 +147,7 @@ void vdso_free_per_cpu(struct _lowcore *lowcore) unsigned long segment_table, page_table, page_frame; u32 *psal, *aste; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return; psal = (u32 *)(addr_t) lowcore->paste[4]; Loading @@ -164,7 +165,7 @@ static void vdso_init_cr5(void) { unsigned long cr5; if (user_mode == HOME_SPACE_MODE || !vdso_enabled) if (addressing_mode == HOME_SPACE_MODE || !vdso_enabled) return; cr5 = offsetof(struct _lowcore, paste); __ctl_load(cr5, 5, 5); Loading
arch/s390/mm/fault.c +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ static inline int user_space_fault(unsigned long trans_exc_code) if (trans_exc_code == 2) /* Access via secondary space, set_fs setting decides */ return current->thread.mm_segment.ar4; if (user_mode == HOME_SPACE_MODE) if (addressing_mode == HOME_SPACE_MODE) /* User space if the access has been done via home space. */ return trans_exc_code == 3; /* Loading