aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/pgtable.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-07-25 11:44:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-25 11:44:27 -0400
commiteeb7c41d9d7c0902accb1d481fe78d84d30c69cc (patch)
tree208fe8d2afd8fa70abfe5a815f5f5cb357856bad /arch/s390/mm/pgtable.c
parent520eccdfe187591a51ea9ab4c1a024ae4d0f68d9 (diff)
parent97ca7bfc19605bc08e9183441b8b8545e84032d6 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Martin Schwidefsky: "Three bug fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/mm: set change and reference bit on lazy key enablement s390: chp: handle CRW_ERC_INIT for channel-path status change s390/perf: fix problem state detection
Diffstat (limited to 'arch/s390/mm/pgtable.c')
-rw-r--r--arch/s390/mm/pgtable.c6
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)
591 unsigned long ptev; 591 unsigned long ptev;
592 pgste_t pgste; 592 pgste_t pgste;
593 593
594 /* Clear storage key */ 594 /* Clear storage key ACC and F, but set R/C */
595 preempt_disable(); 595 preempt_disable();
596 pgste = pgste_get_lock(ptep); 596 pgste = pgste_get_lock(ptep);
597 pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT | 597 pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT);
598 PGSTE_GR_BIT | PGSTE_GC_BIT); 598 pgste_val(pgste) |= PGSTE_GR_BIT | PGSTE_GC_BIT;
599 ptev = pte_val(*ptep); 599 ptev = pte_val(*ptep);
600 if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE)) 600 if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE))
601 page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1); 601 page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1);