Page MenuHomeFreeBSD

D11957.id.diff
No OneTemporary

D11957.id.diff

Index: head/sys/kern/subr_intr.c
===================================================================
--- head/sys/kern/subr_intr.c
+++ head/sys/kern/subr_intr.c
@@ -1169,9 +1169,17 @@
u_int
intr_irq_next_cpu(u_int last_cpu, cpuset_t *cpumask)
{
+ u_int cpu;
- if (!irq_assign_cpu || mp_ncpus == 1)
- return (PCPU_GET(cpuid));
+ KASSERT(!CPU_EMPTY(cpumask), ("%s: Empty CPU mask", __func__));
+ if (!irq_assign_cpu || mp_ncpus == 1) {
+ cpu = PCPU_GET(cpuid);
+
+ if (CPU_ISSET(cpu, cpumask))
+ return (curcpu);
+
+ return (CPU_FFS(cpumask) - 1);
+ }
do {
last_cpu++;

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 28, 8:41 AM (22 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29060966
Default Alt Text
D11957.id.diff (585 B)

Event Timeline