[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/5] xen/x86-64: clean up warnings aboutIST-using traps
>>> Jeremy Fitzhardinge <jeremy@xxxxxxxx> 07.05.09 20:56 >>> >Ignore known IST-using traps. Aside from the debugger traps, they're >low-level faults which Xen will handle for us, so the kernel needn't >worry about them. Keep warning in case unknown trap starts using IST. > >Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx> >--- > arch/x86/xen/enlighten.c | 22 ++++++++++++++++++++-- > 1 files changed, 20 insertions(+), 2 deletions(-) > >diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c >index cb49f57..88f3aa4 100644 >--- a/arch/x86/xen/enlighten.c >+++ b/arch/x86/xen/enlighten.c >@@ -439,12 +439,30 @@ static int cvt_gate_to_trap(int vector, const gate_desc >*val, > > addr = gate_offset(*val); > #ifdef CONFIG_X86_64 >+ /* >+ * Look for known traps using IST, and substitute them >+ * appropriately. The debugger ones are the only ones we care >+ * about. Xen will handle faults like double_fault and >+ * machine_check, so we should never see them. Warn if >+ * there's an unexpected IST-using fault handler. >+ */ > if (addr == (unsigned long)debug) > addr = (unsigned long)xen_debug; > else if (addr == (unsigned long)int3) > addr = (unsigned long)xen_int3; >- else >- WARN_ON(val->ist != 0); >+ else if (addr == (unsigned long)double_fault || >+ addr == (unsigned long)stack_segment) { I don't think you want to exclude handling stack faults: Ordinary memory references using rsp or rbp as the base register will cause these instead of general protection faults when the resulting effective address is non- canonical. >+ /* Don't need to handle these */ >+ return 0; >+#ifdef CONFIG_X86_MCE >+ } else if (addr == (unsigned long)machine_check) { >+ return 0; >+#endif >+ } else { >+ /* Some other trap using IST? */ >+ if (WARN_ON(val->ist != 0)) >+ return 0; >+ } > #endif /* CONFIG_X86_64 */ > info->address = addr; > >-- >1.6.0.6 Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |