在 2024/2/2 18:39, Linus Torvalds 写道:
On Fri, 2 Feb 2024 at 04:30, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> wrote:
ptrace: Introduce exception_ip arch hook
MIPS: Clear Cause.BD in instruction_pointer_set
mm/memory: Use exception ip to search exception tables
Just to clarify: does that second patch fix the problem that
__isa_exception_epc() does a __get_user()?
No it only covers an obvious case when I was playing around exception_ip
with kgdb.
There are still potential cases __isa_exception_epc may touch user space.
Because that mm/memory.c use of "exception_ip()" most definitely
cannot take a page fault.
So if MIPS cannot do that whole exception IP thing without potentially
touching user space, I do worry that we might just have to add a
#ifndef __MIPS__
around this all.
It is possible to perform exception_ip() without touching user space by
saving "BadInstr" in pt_regs
at exception entries. For newer hardware it's as simple as saving an
extra CP0 register, on older hardware
we may have to read it from user space.
+ Thomas (MIPS maintainer), what's your opinion?
Thanks
Possibly somehow limited to just the microMIPS/MIPS16e case in Kconfig instead?
Linus
--
---
Jiaxun Yang