Hmm.. I seem to have failed to send out this reply a few days ago :(
Linus Torvalds <email@example.com> writes:
There are two questions.
1) What can we do to make the situation better.
2) Is the hole completely plugged.
When I wrote the patch I had the local apic priorities backwards in my
head. So apic_in_service_vector can return the wrong value if two
irqs are in service. Now I don't think we allows ourselves to enable
interrupts in an interrupt service routing until after we have acked
the local apic so this should be harmless. The fix is also trivial
of just having apic_in_service_vector return: "~get_irq_regs()->orig_rax".
Except for that one possible problem everything I can think of are
just theoretical cracks at this point, and they don't make the
situation any worse.
Given that this patch has appears to have undergone a noticeable
amount of testing, by people other than myself, and clears up the
symptoms. I have no problem