On 2019/7/12 20:06, Peter Zijlstra wrote:
On Thu, Jul 11, 2019 at 04:15:21PM +0800, Zhenzhong Duan wrote:diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index 4722ba2..2138d69 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -596,7 +596,7 @@ struct trap_array_entry {static struct trap_array_entry trap_array[] = {{ debug, xen_xendebug, true }, - { int3, xen_xenint3, true }, + { int3, xen_int3, true }, { double_fault, xen_double_fault, true }, #ifdef CONFIG_X86_MCE { machine_check, xen_machine_check, true },I'm confused on the purpose of trap_array[], could you elucidate me?
Used to replace trap handler addresses by Xen specific ones and sanity check if there's an unexpected IST-using fault handler.
The sole user seems to be get_trap_addr() and that talks about ISTs, but #BP isn't an IST anymore, so why does it have ist_okay=true?
Oh, yes, I missed that boolean, thanks. I'll try ist_okey=false for int3 and test it tomorrow.
Zhenzhong

