>Since we can't have nested #MC (due to the IST mechanism resetting %rsp
>and clobbering the previous invocation's stack), we have to clear MCIP
>outside the #MC handler. And that means irq_work_queue()
>
>(note that this changes the behaviour from memory corruption to shutdown
>state; both suck, but one more than the other).
Hmm. We currently clear MCIP inside the handler (at the very end, but
still inside). Deferring clearing would make sense - but we'd have to
be sure to do so a.s.a.p on all processors. It also would change how
we look at the possibility of a process being able to run and re-execute
an instruction that causes a machine check. If we defer clearing MCIP
this won't just be annoying, it will be fatal (if any cpu hasn't yet
got to the work queue to clear MCIP).