Commit ed254bb5 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fix from Thomas Gleixner:
 "A small fix for the affinity spreading code.

  It failed to handle situations where a single vector was requested
  either due to only one CPU being available or vector exhaustion
  causing only a single interrupt to be granted.

  The fix is to simply remove the requirement in the affinity spreading
  code for more than one interrupt being available"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  genirq/affinity: Create affinity mask for single vector
parents 6054f4ec 491beed3
...@@ -251,11 +251,9 @@ irq_create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd) ...@@ -251,11 +251,9 @@ irq_create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
* Determine the number of vectors which need interrupt affinities * Determine the number of vectors which need interrupt affinities
* assigned. If the pre/post request exhausts the available vectors * assigned. If the pre/post request exhausts the available vectors
* then nothing to do here except for invoking the calc_sets() * then nothing to do here except for invoking the calc_sets()
* callback so the device driver can adjust to the situation. If there * callback so the device driver can adjust to the situation.
* is only a single vector, then managing the queue is pointless as
* well.
*/ */
if (nvecs > 1 && nvecs > affd->pre_vectors + affd->post_vectors) if (nvecs > affd->pre_vectors + affd->post_vectors)
affvecs = nvecs - affd->pre_vectors - affd->post_vectors; affvecs = nvecs - affd->pre_vectors - affd->post_vectors;
else else
affvecs = 0; affvecs = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment