aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2014-04-30 08:44:44 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2014-08-25 08:35:57 -0400
commit55dbbdd9a832b3c0546a65df155d9e6eee8c312e (patch)
treed78ca606e5a072294a10066648a11e407801738f /arch/s390
parent331cbc277ec4ae5827b9ca538d9b5469fdca0947 (diff)
KVM: s390/mm: readd address parameter to pgste_ipte_notify
Revert git commit 1b7fd6952063 ("remove unecessary parameter from pgste_ipte_notify") Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/include/asm/pgtable.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index b76317c1f3eb..4a649888cb29 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -859,6 +859,7 @@ int gmap_ipte_notify(struct gmap *, unsigned long start, unsigned long len);
859void gmap_do_ipte_notify(struct mm_struct *, pte_t *); 859void gmap_do_ipte_notify(struct mm_struct *, pte_t *);
860 860
861static inline pgste_t pgste_ipte_notify(struct mm_struct *mm, 861static inline pgste_t pgste_ipte_notify(struct mm_struct *mm,
862 unsigned long addr,
862 pte_t *ptep, pgste_t pgste) 863 pte_t *ptep, pgste_t pgste)
863{ 864{
864#ifdef CONFIG_PGSTE 865#ifdef CONFIG_PGSTE
@@ -1110,7 +1111,7 @@ static inline int ptep_test_and_clear_user_dirty(struct mm_struct *mm,
1110 pgste_val(pgste) &= ~PGSTE_UC_BIT; 1111 pgste_val(pgste) &= ~PGSTE_UC_BIT;
1111 pte = *ptep; 1112 pte = *ptep;
1112 if (dirty && (pte_val(pte) & _PAGE_PRESENT)) { 1113 if (dirty && (pte_val(pte) & _PAGE_PRESENT)) {
1113 pgste = pgste_ipte_notify(mm, ptep, pgste); 1114 pgste = pgste_ipte_notify(mm, addr, ptep, pgste);
1114 __ptep_ipte(addr, ptep); 1115 __ptep_ipte(addr, ptep);
1115 if (MACHINE_HAS_ESOP || !(pte_val(pte) & _PAGE_WRITE)) 1116 if (MACHINE_HAS_ESOP || !(pte_val(pte) & _PAGE_WRITE))
1116 pte_val(pte) |= _PAGE_PROTECT; 1117 pte_val(pte) |= _PAGE_PROTECT;
@@ -1132,7 +1133,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
1132 1133
1133 if (mm_has_pgste(vma->vm_mm)) { 1134 if (mm_has_pgste(vma->vm_mm)) {
1134 pgste = pgste_get_lock(ptep); 1135 pgste = pgste_get_lock(ptep);
1135 pgste = pgste_ipte_notify(vma->vm_mm, ptep, pgste); 1136 pgste = pgste_ipte_notify(vma->vm_mm, addr, ptep, pgste);
1136 } 1137 }
1137 1138
1138 pte = *ptep; 1139 pte = *ptep;
@@ -1178,7 +1179,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
1178 1179
1179 if (mm_has_pgste(mm)) { 1180 if (mm_has_pgste(mm)) {
1180 pgste = pgste_get_lock(ptep); 1181 pgste = pgste_get_lock(ptep);
1181 pgste = pgste_ipte_notify(mm, ptep, pgste); 1182 pgste = pgste_ipte_notify(mm, address, ptep, pgste);
1182 } 1183 }
1183 1184
1184 pte = *ptep; 1185 pte = *ptep;
@@ -1202,7 +1203,7 @@ static inline pte_t ptep_modify_prot_start(struct mm_struct *mm,
1202 1203
1203 if (mm_has_pgste(mm)) { 1204 if (mm_has_pgste(mm)) {
1204 pgste = pgste_get_lock(ptep); 1205 pgste = pgste_get_lock(ptep);
1205 pgste_ipte_notify(mm, ptep, pgste); 1206 pgste_ipte_notify(mm, address, ptep, pgste);
1206 } 1207 }
1207 1208
1208 pte = *ptep; 1209 pte = *ptep;
@@ -1239,7 +1240,7 @@ static inline pte_t ptep_clear_flush(struct vm_area_struct *vma,
1239 1240
1240 if (mm_has_pgste(vma->vm_mm)) { 1241 if (mm_has_pgste(vma->vm_mm)) {
1241 pgste = pgste_get_lock(ptep); 1242 pgste = pgste_get_lock(ptep);
1242 pgste = pgste_ipte_notify(vma->vm_mm, ptep, pgste); 1243 pgste = pgste_ipte_notify(vma->vm_mm, address, ptep, pgste);
1243 } 1244 }
1244 1245
1245 pte = *ptep; 1246 pte = *ptep;
@@ -1273,7 +1274,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
1273 1274
1274 if (!full && mm_has_pgste(mm)) { 1275 if (!full && mm_has_pgste(mm)) {
1275 pgste = pgste_get_lock(ptep); 1276 pgste = pgste_get_lock(ptep);
1276 pgste = pgste_ipte_notify(mm, ptep, pgste); 1277 pgste = pgste_ipte_notify(mm, address, ptep, pgste);
1277 } 1278 }
1278 1279
1279 pte = *ptep; 1280 pte = *ptep;
@@ -1298,7 +1299,7 @@ static inline pte_t ptep_set_wrprotect(struct mm_struct *mm,
1298 if (pte_write(pte)) { 1299 if (pte_write(pte)) {
1299 if (mm_has_pgste(mm)) { 1300 if (mm_has_pgste(mm)) {
1300 pgste = pgste_get_lock(ptep); 1301 pgste = pgste_get_lock(ptep);
1301 pgste = pgste_ipte_notify(mm, ptep, pgste); 1302 pgste = pgste_ipte_notify(mm, address, ptep, pgste);
1302 } 1303 }
1303 1304
1304 ptep_flush_lazy(mm, address, ptep); 1305 ptep_flush_lazy(mm, address, ptep);
@@ -1324,7 +1325,7 @@ static inline int ptep_set_access_flags(struct vm_area_struct *vma,
1324 return 0; 1325 return 0;
1325 if (mm_has_pgste(vma->vm_mm)) { 1326 if (mm_has_pgste(vma->vm_mm)) {
1326 pgste = pgste_get_lock(ptep); 1327 pgste = pgste_get_lock(ptep);
1327 pgste = pgste_ipte_notify(vma->vm_mm, ptep, pgste); 1328 pgste = pgste_ipte_notify(vma->vm_mm, address, ptep, pgste);
1328 } 1329 }
1329 1330
1330 ptep_flush_direct(vma->vm_mm, address, ptep); 1331 ptep_flush_direct(vma->vm_mm, address, ptep);