> On Apr 4, 2019, at 10:28 AM, Thomas Gleixner <t...@linutronix.de> wrote:
> 
>> On Thu, 4 Apr 2019, Tycho Andersen wrote:
>>    leaq    -PTREGS_SIZE(%rax), %rsp
>>    UNWIND_HINT_FUNC sp_offset=PTREGS_SIZE
>> 
>> +    /*
>> +     * If we oopsed in an interrupt handler, interrupts may be off. Let's 
>> turn
>> +     * them back on before going back to "normal" code.
>> +     */
>> +    sti
> 
> That breaks the paravirt muck and tracing/lockdep.
> 
> ENABLE_INTERRUPTS() is what you want plus TRACE_IRQ_ON to keep the tracer
> and lockdep happy.
> 
> 

I’m sure we’ll find some other thing we forgot to reset eventually, so let’s do 
this in C.  Change the call do_exit to call __finish_rewind_stack_do_exit and 
add the latter as a C function that does local_irq_enable() and do_exit().
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to