Page MenuHomeFreeBSD

D30006.id90147.diff
No OneTemporary

D30006.id90147.diff

Index: sys/xen/xen_intr.h
===================================================================
--- sys/xen/xen_intr.h
+++ sys/xen/xen_intr.h
@@ -38,7 +38,7 @@
/** Registered Xen interrupt callback handle. */
typedef void * xen_intr_handle_t;
-void xen_intr_handle_upcall(struct trapframe *trap_frame);
+driver_filter_t xen_intr_handle_upcall;
/**
* Associate an already allocated local event channel port an interrupt
Index: sys/xen/xen_intr.c
===================================================================
--- sys/xen/xen_intr.c
+++ sys/xen/xen_intr.c
@@ -491,9 +491,11 @@
*
* \param trap_frame The trap frame context for the current interrupt.
*/
-void
-xen_intr_handle_upcall(struct trapframe *trap_frame)
+int
+xen_intr_handle_upcall(void *_trap_frame)
{
+ struct trapframe *trap_frame = _trap_frame;
+
u_int l1i, l2i, port, cpu;
u_long masked_l1, masked_l2;
struct xenisrc *isrc;
@@ -594,10 +596,14 @@
}
}
+#if defined(__amd64__) || defined(__i386__)
if (xen_evtchn_needs_ack)
lapic_eoi();
+#endif
critical_exit();
+
+ return (FILTER_HANDLED);
}
static int

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 7, 5:58 PM (12 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25007070
Default Alt Text
D30006.id90147.diff (1 KB)

Event Timeline