#include <linux/irq.h> #include <linux/interrupt.h> #include "internals.h"
void irq_move_masked_irq(struct irq_data *idata) { struct irq_desc *desc = irq_data_to_desc(idata); struct irq_chip *chip = desc->irq_data.chip; if (likely(!irqd_is_setaffinity_pending(&desc->irq_data))) return; irqd_clr_move_pending(&desc->irq_data); /* * Paranoia: cpu-local interrupts shouldn't be calling in here anyway. */ if (irqd_is_per_cpu(&desc->irq_data)) { WARN_ON(1); return; } if (unlikely(cpumask_empty(desc->pending_mask))) return; if (!chip->irq_set_affinity) return; assert_raw_spin_locked(&desc->lock); /* * If there was a valid mask to work with, please * do the disable, re-program, enable sequence. * This is *not* particularly important for level triggered * but in a edge trigger case, we might be setting rte * when an active trigger is coming in. This could * cause some ioapics to mal-function. * Being paranoid i guess! * * For correct operation this depends on the caller * masking the irqs. */ if (cpumask_any_and(desc->pending_mask, cpu_online_mask) < nr_cpu_ids) irq_do_set_affinity(&desc->irq_data, desc->pending_mask, false); cpumask_clear(desc->pending_mask); }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 41 | 29.93% | 6 | 31.58% |
Andrew Morton | 37 | 27.01% | 1 | 5.26% |
Bryan Holty | 21 | 15.33% | 1 | 5.26% |
Yinghai Lu | 12 | 8.76% | 2 | 10.53% |
Rusty Russell | 11 | 8.03% | 1 | 5.26% |
Eric W. Biedermann | 5 | 3.65% | 1 | 5.26% |
Ingo Molnar | 4 | 2.92% | 3 | 15.79% |
Jiang Liu | 4 | 2.92% | 2 | 10.53% |
Daniel Walker | 1 | 0.73% | 1 | 5.26% |
Lucas De Marchi | 1 | 0.73% | 1 | 5.26% |
Total | 137 | 100.00% | 19 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 49 | 55.68% | 6 | 50.00% |
Andrew Morton | 11 | 12.50% | 1 | 8.33% |
Jiang Liu | 11 | 12.50% | 1 | 8.33% |
Eric W. Biedermann | 10 | 11.36% | 2 | 16.67% |
Bryan Holty | 5 | 5.68% | 1 | 8.33% |
Ingo Molnar | 2 | 2.27% | 1 | 8.33% |
Total | 88 | 100.00% | 12 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 90 | 38.46% | 10 | 41.67% |
Andrew Morton | 51 | 21.79% | 1 | 4.17% |
Bryan Holty | 26 | 11.11% | 1 | 4.17% |
Yinghai Lu | 18 | 7.69% | 2 | 8.33% |
Jiang Liu | 15 | 6.41% | 2 | 8.33% |
Eric W. Biedermann | 15 | 6.41% | 2 | 8.33% |
Rusty Russell | 11 | 4.70% | 1 | 4.17% |
Ingo Molnar | 6 | 2.56% | 3 | 12.50% |
Lucas De Marchi | 1 | 0.43% | 1 | 4.17% |
Daniel Walker | 1 | 0.43% | 1 | 4.17% |
Total | 234 | 100.00% | 24 | 100.00% |