diff options
author | Keith Busch <keith.busch@intel.com> | 2017-04-19 19:51:10 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-04-20 16:03:09 +0200 |
commit | b72f8051f34b8164a62391e3676edc34523c5952 (patch) | |
tree | 3b3bceecb9f7936319f0266740e92a8e89cb7277 /kernel | |
parent | f61143c45077df4fa78e2f1ba455a00bbe1d5b8c (diff) | |
download | lwn-b72f8051f34b8164a62391e3676edc34523c5952.tar.gz lwn-b72f8051f34b8164a62391e3676edc34523c5952.zip |
genirq/affinity: Fix calculating vectors to assign
The vectors_per_node is calculated from the remaining available vectors.
The current vector starts after pre_vectors, so we need to subtract that
from the current to properly account for the number of remaining vectors
to assign.
Fixes: 3412386b531 ("irq/affinity: Fix extra vecs calculation")
Reported-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Link: http://lkml.kernel.org/r/1492645870-13019-1-git-send-email-keith.busch@intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/irq/affinity.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c index d052947fe785..e2d356dd7581 100644 --- a/kernel/irq/affinity.c +++ b/kernel/irq/affinity.c @@ -98,7 +98,7 @@ irq_create_affinity_masks(int nvecs, const struct irq_affinity *affd) int ncpus, v, vecs_to_assign, vecs_per_node; /* Spread the vectors per node */ - vecs_per_node = (affv - curvec) / nodes; + vecs_per_node = (affv - (curvec - affd->pre_vectors)) / nodes; /* Get the cpus on this node which are in the mask */ cpumask_and(nmsk, cpu_online_mask, cpumask_of_node(n)); |