s390/pgtable: fix mprotect for single-threaded KVM guests
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Aug 2013 06:19:27 +0000 (08:19 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 28 Aug 2013 07:19:28 +0000 (09:19 +0200)
For a single-threaded KVM guest ptep_modify_prot_start will not use
IPTE, the invalid bit will therefore not be set. If DEBUG_VM is set
pgste_set_key called by ptep_modify_prot_commit will complain about
the missing invalid bit. ptep_modify_prot_start should set the
invalid bit in all cases.

Cc: stable@vger.kernel.org # 3.10+
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/pgtable.h

index 125e379..1d144b6 100644 (file)
@@ -1093,6 +1093,7 @@ static inline pte_t ptep_modify_prot_start(struct mm_struct *mm,
 
        pte = *ptep;
        ptep_flush_lazy(mm, address, ptep);
+       pte_val(*ptep) |= _PAGE_INVALID;
 
        if (mm_has_pgste(mm)) {
                pgste = pgste_update_all(&pte, pgste);