Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

genirq/affinity: Use default affinity mask for reserved vectors

The reserved vectors at the beginning and the end of the vector space get
cpu_possible_mask assigned as their affinity mask.

All other non-auto affine interrupts get the default irq affinity mask
assigned. Using cpu_possible_mask breaks that rule.

Treat them like any other interrupt and use irq_default_affinity as target
mask.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Christoph Hellwig <hch@lst.de>

+2 -2
+2 -2
kernel/irq/affinity.c
··· 75 75 76 76 /* Fill out vectors at the beginning that don't need affinity */ 77 77 for (curvec = 0; curvec < affd->pre_vectors; curvec++) 78 - cpumask_copy(masks + curvec, cpu_possible_mask); 78 + cpumask_copy(masks + curvec, irq_default_affinity); 79 79 80 80 /* Stabilize the cpumasks */ 81 81 get_online_cpus(); ··· 130 130 131 131 /* Fill out vectors at the end that don't need affinity */ 132 132 for (; curvec < nvecs; curvec++) 133 - cpumask_copy(masks + curvec, cpu_possible_mask); 133 + cpumask_copy(masks + curvec, irq_default_affinity); 134 134 out: 135 135 free_cpumask_var(nmsk); 136 136 return masks;