s390/mm: cleanup virtual memory constants usage
authorAlexander Gordeev <agordeev@linux.ibm.com>
Thu, 19 Mar 2020 12:44:49 +0000 (13:44 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 28 Mar 2020 11:46:12 +0000 (12:46 +0100)
Remove duplicate definitions and consolidate usage
of virutal and address translation constants.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/mmu_context.h
arch/s390/include/asm/processor.h
arch/s390/mm/pgalloc.c

index 3763734965e4134d582e1cb60e5704aae1bf4a76..248d51cdcad9f5ef683c2a92fc11804d63277dda 100644 (file)
@@ -42,11 +42,11 @@ static inline int init_new_context(struct task_struct *tsk,
                 */
        case 0:
                /* context created by exec, set asce limit to 4TB */
-               mm->context.asce_limit = STACK_TOP_MAX;
+               mm->context.asce_limit = _REGION2_SIZE;
                mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
                                   _ASCE_USER_BITS | _ASCE_TYPE_REGION3;
                break;
-       case -PAGE_SIZE:
+       case TASK_SIZE_MAX:
                /* forked 5-level task, set new asce with new_mm->pgd */
                mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
                        _ASCE_USER_BITS | _ASCE_TYPE_REGION1;
index dee5e57da518d4bd9d6c1ee573f1f373e56a8d53..d052adfd53f3c9ef14effa53a779f271298a46fd 100644 (file)
@@ -93,15 +93,15 @@ extern void __bpon(void);
  */
 
 #define TASK_SIZE_OF(tsk)      (test_tsk_thread_flag(tsk, TIF_31BIT) ? \
-                                       (1UL << 31) : -PAGE_SIZE)
+                                       _REGION3_SIZE : TASK_SIZE_MAX)
 #define TASK_UNMAPPED_BASE     (test_thread_flag(TIF_31BIT) ? \
-                                       (1UL << 30) : (1UL << 41))
+                                       (_REGION3_SIZE >> 1) : (_REGION2_SIZE >> 1))
 #define TASK_SIZE              TASK_SIZE_OF(current)
 #define TASK_SIZE_MAX          (-PAGE_SIZE)
 
 #define STACK_TOP              (test_thread_flag(TIF_31BIT) ? \
-                                       (1UL << 31) : (1UL << 42))
-#define STACK_TOP_MAX          (1UL << 42)
+                                       _REGION3_SIZE : _REGION2_SIZE)
+#define STACK_TOP_MAX          _REGION2_SIZE
 
 #define HAVE_ARCH_PICK_MMAP_LAYOUT
 
index 4630fb7705ca9b644b91e6d12ef321c7436768df..498c98a312f44c0318d3a0ee051b0a65fd5078f6 100644 (file)
@@ -121,7 +121,7 @@ int crst_table_upgrade(struct mm_struct *mm, unsigned long end)
                __pgd = (unsigned long *) mm->pgd;
                pgd_populate(mm, (pgd_t *) pgd, (p4d_t *) __pgd);
                mm->pgd = (pgd_t *) pgd;
-               mm->context.asce_limit = -PAGE_SIZE;
+               mm->context.asce_limit = TASK_SIZE_MAX;
                mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
                        _ASCE_USER_BITS | _ASCE_TYPE_REGION1;
        }
@@ -527,7 +527,7 @@ void base_asce_free(unsigned long asce)
                base_region2_walk(table, 0, _REGION1_SIZE, 0);
                break;
        case _ASCE_TYPE_REGION1:
-               base_region1_walk(table, 0, -_PAGE_SIZE, 0);
+               base_region1_walk(table, 0, TASK_SIZE_MAX, 0);
                break;
        }
        base_crst_free(table);