.. | .. |
---|
24 | 24 | #include "internals.h" |
---|
25 | 25 | |
---|
26 | 26 | #ifdef CONFIG_IRQ_FORCED_THREADING |
---|
| 27 | +# ifndef CONFIG_PREEMPT_RT_BASE |
---|
27 | 28 | __read_mostly bool force_irqthreads; |
---|
28 | 29 | EXPORT_SYMBOL_GPL(force_irqthreads); |
---|
29 | 30 | |
---|
.. | .. |
---|
33 | 34 | return 0; |
---|
34 | 35 | } |
---|
35 | 36 | early_param("threadirqs", setup_forced_irqthreads); |
---|
| 37 | +# endif |
---|
36 | 38 | #endif |
---|
37 | 39 | |
---|
38 | 40 | static void __synchronize_hardirq(struct irq_desc *desc, bool sync_chip) |
---|
.. | .. |
---|
1095 | 1097 | if (action_ret == IRQ_WAKE_THREAD) |
---|
1096 | 1098 | irq_wake_secondary(desc, action); |
---|
1097 | 1099 | |
---|
| 1100 | +#ifdef CONFIG_PREEMPT_RT_FULL |
---|
| 1101 | + migrate_disable(); |
---|
| 1102 | + add_interrupt_randomness(action->irq, 0, |
---|
| 1103 | + desc->random_ip ^ (unsigned long) action); |
---|
| 1104 | + migrate_enable(); |
---|
| 1105 | +#endif |
---|
1098 | 1106 | wake_threads_waitq(desc); |
---|
1099 | 1107 | } |
---|
1100 | 1108 | |
---|
.. | .. |
---|
1506 | 1514 | irq_settings_set_no_balancing(desc); |
---|
1507 | 1515 | irqd_set(&desc->irq_data, IRQD_NO_BALANCING); |
---|
1508 | 1516 | } |
---|
| 1517 | + |
---|
| 1518 | + if (new->flags & IRQF_NO_SOFTIRQ_CALL) |
---|
| 1519 | + irq_settings_set_no_softirq_call(desc); |
---|
1509 | 1520 | |
---|
1510 | 1521 | if (irq_settings_can_autoenable(desc)) { |
---|
1511 | 1522 | irq_startup(desc, IRQ_RESEND, IRQ_START_COND); |
---|
.. | .. |
---|
2312 | 2323 | * This call sets the internal irqchip state of an interrupt, |
---|
2313 | 2324 | * depending on the value of @which. |
---|
2314 | 2325 | * |
---|
2315 | | - * This function should be called with preemption disabled if the |
---|
| 2326 | + * This function should be called with migration disabled if the |
---|
2316 | 2327 | * interrupt controller has per-cpu registers. |
---|
2317 | 2328 | */ |
---|
2318 | 2329 | int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, |
---|