On 22/01/15 03:18, Andy Lutomirski wrote: >> --- a/drivers/xen/events/events_base.c >> +++ b/drivers/xen/events/events_base.c >> @@ -32,6 +32,8 @@ >> #include <linux/slab.h> >> #include <linux/irqnr.h> >> #include <linux/pci.h> >> +#include <linux/sched.h> >> +#include <linux/kprobes.h> >> >> #ifdef CONFIG_X86 >> #include <asm/desc.h> >> @@ -1243,6 +1245,17 @@ void xen_evtchn_do_upcall(struct pt_regs *regs) >> set_irq_regs(old_regs); >> } >> >> +notrace void xen_end_upcall(struct pt_regs *regs) >> +{ >> + if (!xen_is_preemptible_hypercall(regs) || >> + __this_cpu_read(xed_nesting_count)) >> + return; > > What's xed_nesting_count? It used to prevent nested upcalls when a hypercall called from an upcall triggers another upcall. There's no way a such a nested hypercall can be preemptible so the check cfor xed_nesting_count an be removed from here. David -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html