From cb13453b301f1945150eeb087c85e5d47bcf5e06 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Wed, 5 Jun 2013 09:22:33 +0200 Subject: [PATCH] --- yaml --- r: 377063 b: refs/heads/master c: 3a82603be4f5523ce21dd468a323aa36ff845f6d h: refs/heads/master i: 377061: 54ef3b1b549e4f385f734587208bafc5ea8cebb0 377059: d24e037659c59afc6919e22ed83d6740fe84b542 377055: bee2641ec00c0ec897ff0b3312d069d2a2d63cd5 v: v3 --- [refs] | 2 +- trunk/arch/s390/include/asm/pgtable.h | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 62d0b3ebc845..ce9d3d704905 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9cc5c206d9b44b7763aab3082a5be72c78a3ef7a +refs/heads/master: 3a82603be4f5523ce21dd468a323aa36ff845f6d diff --git a/trunk/arch/s390/include/asm/pgtable.h b/trunk/arch/s390/include/asm/pgtable.h index 391e592356d0..f9a0a70dc936 100644 --- a/trunk/arch/s390/include/asm/pgtable.h +++ b/trunk/arch/s390/include/asm/pgtable.h @@ -640,6 +640,13 @@ static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste) #endif } +static inline void pgste_set(pte_t *ptep, pgste_t pgste) +{ +#ifdef CONFIG_PGSTE + *(pgste_t *)(ptep + PTRS_PER_PTE) = pgste; +#endif +} + static inline pgste_t pgste_update_all(pte_t *ptep, pgste_t pgste) { #ifdef CONFIG_PGSTE @@ -1101,8 +1108,10 @@ static inline pte_t ptep_modify_prot_start(struct mm_struct *mm, if (!mm_exclusive(mm)) __ptep_ipte(address, ptep); - if (mm_has_pgste(mm)) + if (mm_has_pgste(mm)) { pgste = pgste_update_all(&pte, pgste); + pgste_set(ptep, pgste); + } return pte; }