Message ID | 20200206030900.147032-6-leonardo@linux.ibm.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Introduces new functions for tracking lockless pagetable walks | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (530a1cfd52af0aba1af4b1c9a7bc66a202a459b1) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 24 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
diff --git a/arch/powerpc/perf/callchain.c b/arch/powerpc/perf/callchain.c index cbc251981209..fd9979e69f36 100644 --- a/arch/powerpc/perf/callchain.c +++ b/arch/powerpc/perf/callchain.c @@ -116,14 +116,14 @@ static int read_user_stack_slow(void __user *ptr, void *buf, int nb) unsigned shift; unsigned long addr = (unsigned long) ptr; unsigned long offset; - unsigned long pfn, flags; + unsigned long pfn, irq_mask; void *kaddr; pgdir = current->mm->pgd; if (!pgdir) return -EFAULT; - local_irq_save(flags); + irq_mask = begin_lockless_pgtbl_walk(); ptep = find_current_mm_pte(pgdir, addr, NULL, &shift); if (!ptep) goto err_out; @@ -145,7 +145,7 @@ static int read_user_stack_slow(void __user *ptr, void *buf, int nb) memcpy(buf, kaddr + offset, nb); ret = 0; err_out: - local_irq_restore(flags); + end_lockless_pgtbl_walk(irq_mask); return ret; }
Applies the new functions used for tracking lockless pgtable walks on read_user_stack_slow. local_irq_{save,restore} is already inside {begin,end}_lockless_pgtbl_walk, so there is no need to repeat it here. Variable that saves the irq mask was renamed from flags to irq_mask so it doesn't lose meaning now it's not directly passed to local_irq_* functions. Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> --- arch/powerpc/perf/callchain.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)