On Mon, 30 Aug 2010, Stefano Stabellini wrote:
> On Mon, 30 Aug 2010, Jeremy Fitzhardinge wrote:
> > On 08/30/2010 02:37 AM, Stefano Stabellini wrote:
> > >> smp_xen_hvm_callback_vector is just missing, so I think it should be
> > >> using BUILD_INTERRUPT3 with the third arg being xen_evtchn_do_upcall.
> > > BUILD_INTERRUPT3 is an x86_32 only MACRO, that's why I am using
> > > apicinterrupt instead.
> >
> > My original problem was that my 32-bit builds were failing because
> > smp_xen_hvm_callback_vector was missing. I wonder if its the collision
> > of two sets of patches.
>
> I think you are just missing a patch like this one:
>
sorry I missed a very import chunk of the patch, appending again:
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 21feb03..7764118 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1088,7 +1088,8 @@ ENTRY(xen_failsafe_callback)
.previous
ENDPROC(xen_failsafe_callback)
-BUILD_INTERRUPT(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK)
+BUILD_INTERRUPT3(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK,
+ xen_evtchn_do_upcall)
#endif /* CONFIG_XEN */
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 1bf0911..a626344 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -1365,7 +1365,7 @@ ENTRY(xen_failsafe_callback)
END(xen_failsafe_callback)
apicinterrupt XEN_HVM_EVTCHN_CALLBACK \
- xen_hvm_callback_vector smp_xen_hvm_callback_vector
+ xen_hvm_callback_vector xen_evtchn_do_upcall
#endif /* CONFIG_XEN */
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index b4a00bf..743e08f 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -1414,21 +1414,6 @@ int xen_set_callback_via(uint64_t via)
}
EXPORT_SYMBOL_GPL(xen_set_callback_via);
-void smp_xen_hvm_callback_vector(struct pt_regs *regs)
-{
- struct pt_regs *old_regs = set_irq_regs(regs);
-
- exit_idle();
-
- irq_enter();
-
- __xen_evtchn_do_upcall(regs);
-
- irq_exit();
-
- set_irq_regs(old_regs);
-}
-
/* Vector callbacks are better than PCI interrupts to receive event
* channel notifications because we can receive vector callbacks on any
* vcpu and we don't need PCI support or APIC interactions. */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|