diff options
| author | Rob Herring <robh@kernel.org> | 2014-05-13 18:34:35 -0500 |
|---|---|---|
| committer | Rob Herring <robh@kernel.org> | 2014-05-13 18:34:35 -0500 |
| commit | eafd370dfe487facfdef499057f4eac9aa0b4bf5 (patch) | |
| tree | 0925a67cd658cdf4811f49b4cd2073f663166bd0 /include/linux/interrupt.h | |
| parent | c3fc952d2fbe3ec78defd70cf73d5d76d27092ec (diff) | |
| parent | fb2caa50fbacd21719a90dd66b617ce3cb4fd6d7 (diff) | |
Merge branch 'dt-bus-name' into for-next
Diffstat (limited to 'include/linux/interrupt.h')
| -rw-r--r-- | include/linux/interrupt.h | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index c7bfac1c4a7b..97ac926c78a7 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -203,7 +203,40 @@ static inline int check_wakeup_irqs(void) { return 0; } extern cpumask_var_t irq_default_affinity; -extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask); +/* Internal implementation. Use the helpers below */ +extern int __irq_set_affinity(unsigned int irq, const struct cpumask *cpumask, + bool force); + +/** + * irq_set_affinity - Set the irq affinity of a given irq + * @irq: Interrupt to set affinity + * @cpumask: cpumask + * + * Fails if cpumask does not contain an online CPU + */ +static inline int +irq_set_affinity(unsigned int irq, const struct cpumask *cpumask) +{ + return __irq_set_affinity(irq, cpumask, false); +} + +/** + * irq_force_affinity - Force the irq affinity of a given irq + * @irq: Interrupt to set affinity + * @cpumask: cpumask + * + * Same as irq_set_affinity, but without checking the mask against + * online cpus. + * + * Solely for low level cpu hotplug code, where we need to make per + * cpu interrupts affine before the cpu becomes online. + */ +static inline int +irq_force_affinity(unsigned int irq, const struct cpumask *cpumask) +{ + return __irq_set_affinity(irq, cpumask, true); +} + extern int irq_can_set_affinity(unsigned int irq); extern int irq_select_affinity(unsigned int irq); |
