Page MenuHomeFreeBSD

D41447.1777647660.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D41447.1777647660.diff

Index: sys/x86/include/intr_machdep.h
===================================================================
--- sys/x86/include/intr_machdep.h
+++ sys/x86/include/intr_machdep.h
@@ -143,6 +143,9 @@
int intr_add_handler(const char *name, int vector, driver_filter_t filter,
driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
int domain);
+#ifdef SMP
+int intr_bind(u_int vector, u_char cpu);
+#endif
int intr_config_intr(int vector, enum intr_trigger trig,
enum intr_polarity pol);
int intr_describe(u_int vector, void *ih, const char *descr);
Index: sys/x86/x86/intr_machdep.c
===================================================================
--- sys/x86/x86/intr_machdep.c
+++ sys/x86/x86/intr_machdep.c
@@ -630,6 +630,18 @@
return (apic_id);
}
+/* Attempt to bind the specified IRQ to the specified CPU. */
+int
+intr_bind(u_int vector, u_char cpu)
+{
+ struct intsrc *isrc;
+
+ isrc = intr_lookup_source(vector);
+ if (isrc == NULL)
+ return (EINVAL);
+ return (intr_event_bind(isrc->is_event, cpu));
+}
+
/*
* Add a CPU to our mask of valid CPUs that can be destinations of
* interrupts.
Index: sys/x86/x86/nexus.c
===================================================================
--- sys/x86/x86/nexus.c
+++ sys/x86/x86/nexus.c
@@ -615,12 +615,7 @@
static int
nexus_bind_intr(device_t dev, device_t child, struct resource *irq, int cpu)
{
- struct intsrc *isrc;
-
- isrc = intr_lookup_source(rman_get_start(irq));
- if (isrc == NULL)
- return (EINVAL);
- return (intr_event_bind(isrc->is_event, cpu));
+ return (intr_bind(rman_get_start(irq), cpu));
}
#endif

File Metadata

Mime Type
text/plain
Expires
Fri, May 1, 3:01 PM (3 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28528620
Default Alt Text
D41447.1777647660.diff (1 KB)

Event Timeline