diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-06-14 06:38:40 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-08-24 03:23:55 -0400 |
commit | 34eeaf376dbe53849acc3d4edc4efc2ad97ab23e (patch) | |
tree | 64143e09710f21f442555078e950793b5318b694 /arch/s390/mm | |
parent | 44b6cc8130e80e673ba8b3baf8e41891fe484786 (diff) |
s390/mm: merge local / non-local IPTE helper
Merge the __ptep_ipte and __ptep_ipte_local functions into a single
__ptep_ipte function with an additional parameter. The __pte_ipte_range
function is still extra as the while loops makes it hard to merge.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/mm')
-rw-r--r-- | arch/s390/mm/pageattr.c | 4 | ||||
-rw-r--r-- | arch/s390/mm/pgtable.c | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c index af7cf28cf97e..44f150312a16 100644 --- a/arch/s390/mm/pageattr.c +++ b/arch/s390/mm/pageattr.c | |||
@@ -309,11 +309,11 @@ static void ipte_range(pte_t *pte, unsigned long address, int nr) | |||
309 | int i; | 309 | int i; |
310 | 310 | ||
311 | if (test_facility(13)) { | 311 | if (test_facility(13)) { |
312 | __ptep_ipte_range(address, nr - 1, pte); | 312 | __ptep_ipte_range(address, nr - 1, pte, IPTE_GLOBAL); |
313 | return; | 313 | return; |
314 | } | 314 | } |
315 | for (i = 0; i < nr; i++) { | 315 | for (i = 0; i < nr; i++) { |
316 | __ptep_ipte(address, pte); | 316 | __ptep_ipte(address, pte, IPTE_GLOBAL); |
317 | address += PAGE_SIZE; | 317 | address += PAGE_SIZE; |
318 | pte++; | 318 | pte++; |
319 | } | 319 | } |
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index 5f092015aaa7..1dc6cad9a5ac 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c | |||
@@ -35,9 +35,9 @@ static inline pte_t ptep_flush_direct(struct mm_struct *mm, | |||
35 | atomic_inc(&mm->context.flush_count); | 35 | atomic_inc(&mm->context.flush_count); |
36 | if (MACHINE_HAS_TLB_LC && | 36 | if (MACHINE_HAS_TLB_LC && |
37 | cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id()))) | 37 | cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id()))) |
38 | __ptep_ipte_local(addr, ptep); | 38 | __ptep_ipte(addr, ptep, IPTE_LOCAL); |
39 | else | 39 | else |
40 | __ptep_ipte(addr, ptep); | 40 | __ptep_ipte(addr, ptep, IPTE_GLOBAL); |
41 | atomic_dec(&mm->context.flush_count); | 41 | atomic_dec(&mm->context.flush_count); |
42 | return old; | 42 | return old; |
43 | } | 43 | } |
@@ -56,7 +56,7 @@ static inline pte_t ptep_flush_lazy(struct mm_struct *mm, | |||
56 | pte_val(*ptep) |= _PAGE_INVALID; | 56 | pte_val(*ptep) |= _PAGE_INVALID; |
57 | mm->context.flush_mm = 1; | 57 | mm->context.flush_mm = 1; |
58 | } else | 58 | } else |
59 | __ptep_ipte(addr, ptep); | 59 | __ptep_ipte(addr, ptep, IPTE_GLOBAL); |
60 | atomic_dec(&mm->context.flush_count); | 60 | atomic_dec(&mm->context.flush_count); |
61 | return old; | 61 | return old; |
62 | } | 62 | } |
@@ -620,7 +620,7 @@ bool test_and_clear_guest_dirty(struct mm_struct *mm, unsigned long addr) | |||
620 | pte = *ptep; | 620 | pte = *ptep; |
621 | if (dirty && (pte_val(pte) & _PAGE_PRESENT)) { | 621 | if (dirty && (pte_val(pte) & _PAGE_PRESENT)) { |
622 | pgste = pgste_pte_notify(mm, addr, ptep, pgste); | 622 | pgste = pgste_pte_notify(mm, addr, ptep, pgste); |
623 | __ptep_ipte(addr, ptep); | 623 | __ptep_ipte(addr, ptep, IPTE_GLOBAL); |
624 | if (MACHINE_HAS_ESOP || !(pte_val(pte) & _PAGE_WRITE)) | 624 | if (MACHINE_HAS_ESOP || !(pte_val(pte) & _PAGE_WRITE)) |
625 | pte_val(pte) |= _PAGE_PROTECT; | 625 | pte_val(pte) |= _PAGE_PROTECT; |
626 | else | 626 | else |