Commit f6a843d9 authored by David S. Miller's avatar David S. Miller

[SPARC64]: flush_ptrace_access() needs preemption disable.

Based upon a report by Mariusz Kozlowski.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e5ac71f2
...@@ -70,6 +70,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, ...@@ -70,6 +70,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
if (tlb_type == hypervisor) if (tlb_type == hypervisor)
return; return;
preempt_disable();
#ifdef DCACHE_ALIASING_POSSIBLE #ifdef DCACHE_ALIASING_POSSIBLE
/* If bit 13 of the kernel address we used to access the /* If bit 13 of the kernel address we used to access the
* user page is the same as the virtual address that page * user page is the same as the virtual address that page
...@@ -108,6 +110,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, ...@@ -108,6 +110,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
for (; start < end; start += icache_line_size) for (; start < end; start += icache_line_size)
flushi(start); flushi(start);
} }
preempt_enable();
} }
enum sparc_regset { enum sparc_regset {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment