IRQ_MOVE_CLEANUP_VECTOR is at 0x20, ie. far below FIRST_SYSTEM_VECTOR.
So we must not translate it when calling ipipe_virtualize_irq, and we
have to demux it properly in __ipipe_handle_irq.

Signed-off-by: Jan Kiszka <[email protected]>
---

Changes in v2:
 - special demux code for __ipipe_handle_irq

 arch/x86/kernel/ipipe.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/ipipe.c b/arch/x86/kernel/ipipe.c
index b471355..76fd782 100644
--- a/arch/x86/kernel/ipipe.c
+++ b/arch/x86/kernel/ipipe.c
@@ -289,7 +289,7 @@ void __init __ipipe_enable_pipeline(void)
                             IPIPE_STDROOT_MASK);
 
        ipipe_virtualize_irq(ipipe_root_domain,
-                            ipipe_apic_vector_irq(IRQ_MOVE_CLEANUP_VECTOR),
+                            IRQ_MOVE_CLEANUP_VECTOR,
                             
(ipipe_irq_handler_t)&smp_irq_move_cleanup_interrupt,
                             NULL,
                             &__ipipe_ack_apic,
@@ -311,7 +311,10 @@ void __init __ipipe_enable_pipeline(void)
         * IPIPE_SYSTEM_MASK has been passed for them, that's ok. */
 
        for (irq = 0; irq < NR_IRQS; irq++)
-               /* Fails for IPIPE_CRITICAL_IPI but that's ok. */
+               /*
+                * Fails for IPIPE_CRITICAL_IPI and IRQ_MOVE_CLEANUP_VECTOR,
+                * but that's ok.
+                */
                ipipe_virtualize_irq(ipipe_root_domain,
                                     irq,
                                     (ipipe_irq_handler_t)&do_IRQ,
@@ -900,6 +903,8 @@ int __ipipe_handle_irq(struct pt_regs *regs)
 #ifdef CONFIG_X86_LOCAL_APIC
                if (vector >= FIRST_SYSTEM_VECTOR)
                        irq = ipipe_apic_vector_irq(vector);
+               else if (vector == IRQ_MOVE_CLEANUP_VECTOR)
+                       irq = vector;
                else
 #endif
                        irq = __get_cpu_var(vector_irq)[vector];
-- 
1.6.0.2

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to