#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 | thomas gleixner | 41 | 29.93% | 6 | 31.58% |
andrew morton | andrew morton | 37 | 27.01% | 1 | 5.26% |
bryan holty | bryan holty | 21 | 15.33% | 1 | 5.26% |
yinghai lu | yinghai lu | 12 | 8.76% | 2 | 10.53% |
rusty russell | rusty russell | 11 | 8.03% | 1 | 5.26% |
eric w. biederman | eric w. biederman | 5 | 3.65% | 1 | 5.26% |
ingo molnar | ingo molnar | 4 | 2.92% | 3 | 15.79% |
jiang liu | jiang liu | 4 | 2.92% | 2 | 10.53% |
lucas de marchi | lucas de marchi | 1 | 0.73% | 1 | 5.26% |
daniel walker | daniel walker | 1 | 0.73% | 1 | 5.26% |
Total | 137 | 100.00% | 19 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
thomas gleixner | thomas gleixner | 49 | 55.68% | 6 | 50.00% |
andrew morton | andrew morton | 11 | 12.50% | 1 | 8.33% |
jiang liu | jiang liu | 11 | 12.50% | 1 | 8.33% |
eric w. biederman | eric w. biederman | 10 | 11.36% | 2 | 16.67% |
bryan holty | bryan holty | 5 | 5.68% | 1 | 8.33% |
ingo molnar | ingo molnar | 2 | 2.27% | 1 | 8.33% |
Total | 88 | 100.00% | 12 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
thomas gleixner | thomas gleixner | 90 | 38.46% | 10 | 41.67% |
andrew morton | andrew morton | 51 | 21.79% | 1 | 4.17% |
bryan holty | bryan holty | 26 | 11.11% | 1 | 4.17% |
yinghai lu | yinghai lu | 18 | 7.69% | 2 | 8.33% |
eric w. biederman | eric w. biederman | 15 | 6.41% | 2 | 8.33% |
jiang liu | jiang liu | 15 | 6.41% | 2 | 8.33% |
rusty russell | rusty russell | 11 | 4.70% | 1 | 4.17% |
ingo molnar | ingo molnar | 6 | 2.56% | 3 | 12.50% |
daniel walker | daniel walker | 1 | 0.43% | 1 | 4.17% |
lucas de marchi | lucas de marchi | 1 | 0.43% | 1 | 4.17% |
Total | 234 | 100.00% | 24 | 100.00% |