[SPARC64]: flush_ptrace_access() needs preemption disable.
Based upon a report by Mariusz Kozlowski. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
e5ac71f255
Коммит
f6a843d939
|
@ -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,
|
||||||
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 {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче