diff options
Diffstat (limited to 'arch/s390/mm/pgtable.c')
| -rw-r--r-- | arch/s390/mm/pgtable.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index d4d409ba206b..4a1f7366b17a 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c @@ -591,11 +591,11 @@ void ptep_zap_key(struct mm_struct *mm, unsigned long addr, pte_t *ptep)  	unsigned long ptev;  	pgste_t pgste; -	/* Clear storage key */ +	/* Clear storage key ACC and F, but set R/C */  	preempt_disable();  	pgste = pgste_get_lock(ptep); -	pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT | -			      PGSTE_GR_BIT | PGSTE_GC_BIT); +	pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT); +	pgste_val(pgste) |= PGSTE_GR_BIT | PGSTE_GC_BIT;  	ptev = pte_val(*ptep);  	if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE))  		page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1);  |