diff options
Diffstat (limited to 'arch/s390/mm/pgtable.c')
| -rw-r--r-- | arch/s390/mm/pgtable.c | 10 | 
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index 4d1f2bce87b..f69ff3c1349 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c @@ -160,6 +160,8 @@ struct gmap *gmap_alloc(struct mm_struct *mm)  	table = (unsigned long *) page_to_phys(page);  	crst_table_init(table, _REGION1_ENTRY_EMPTY);  	gmap->table = table; +	gmap->asce = _ASCE_TYPE_REGION1 | _ASCE_TABLE_LENGTH | +		     _ASCE_USER_BITS | __pa(table);  	list_add(&gmap->list, &mm->context.gmap_list);  	return gmap; @@ -240,10 +242,6 @@ EXPORT_SYMBOL_GPL(gmap_free);   */  void gmap_enable(struct gmap *gmap)  { -	/* Load primary space page table origin. */ -	S390_lowcore.user_asce = _ASCE_TYPE_REGION1 | _ASCE_TABLE_LENGTH | -				 _ASCE_USER_BITS | __pa(gmap->table); -	asm volatile("lctlg 1,1,%0\n" : : "m" (S390_lowcore.user_asce) );  	S390_lowcore.gmap = (unsigned long) gmap;  }  EXPORT_SYMBOL_GPL(gmap_enable); @@ -254,10 +252,6 @@ EXPORT_SYMBOL_GPL(gmap_enable);   */  void gmap_disable(struct gmap *gmap)  { -	/* Load primary space page table origin. */ -	S390_lowcore.user_asce = -		gmap->mm->context.asce_bits | __pa(gmap->mm->pgd); -	asm volatile("lctlg 1,1,%0\n" : : "m" (S390_lowcore.user_asce) );  	S390_lowcore.gmap = 0UL;  }  EXPORT_SYMBOL_GPL(gmap_disable);  |