Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [patch V6 10/37] x86/entry: Switch XEN/PV hypercall entry to IDTENTRY | Date | Thu, 21 May 2020 09:08:51 +0200 |
| |
Boris Ostrovsky <boris.ostrovsky@oracle.com> writes:
> On 5/20/20 3:16 PM, Thomas Gleixner wrote: > > >> +__visible noinstr void xen_pv_evtchn_do_upcall(struct pt_regs *regs) >> +{ >> + struct pt_regs *old_regs; >> + bool inhcall; >> + >> + idtentry_enter(regs); >> + old_regs = set_irq_regs(regs); >> + >> + run_on_irqstack(__xen_pv_evtchn_do_upcall, NULL, regs); > > > We need to handle nested case (i.e. !irq_needs_irq_stack(), like in your > original version). Moving get_and_clear_inhcall() up should prevent > scheduling when this happens.
I locally changed run_on_irqstack() to do the magic checks and select the right one.
Thanks,
tglx
| |