.. | .. |
---|
145 | 145 | for_each_action_of_desc(desc, action) { |
---|
146 | 146 | irqreturn_t res; |
---|
147 | 147 | |
---|
| 148 | + /* |
---|
| 149 | + * If this IRQ would be threaded under force_irqthreads, mark it so. |
---|
| 150 | + */ |
---|
| 151 | + if (irq_settings_can_thread(desc) && |
---|
| 152 | + !(action->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT))) |
---|
| 153 | + lockdep_hardirq_threaded(); |
---|
| 154 | + |
---|
148 | 155 | trace_irq_handler_entry(irq, action); |
---|
149 | 156 | res = action->handler(irq, action->dev_id); |
---|
150 | 157 | trace_irq_handler_exit(irq, action, res); |
---|
151 | 158 | |
---|
152 | | - if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pF enabled interrupts\n", |
---|
| 159 | + if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pS enabled interrupts\n", |
---|
153 | 160 | irq, action->handler)) |
---|
154 | 161 | local_irq_disable(); |
---|
155 | 162 | |
---|
.. | .. |
---|
166 | 173 | |
---|
167 | 174 | __irq_wake_thread(desc, action); |
---|
168 | 175 | |
---|
169 | | - /* Fall through to add to randomness */ |
---|
| 176 | + fallthrough; /* to add to randomness */ |
---|
170 | 177 | case IRQ_HANDLED: |
---|
171 | 178 | *flags |= action->flags; |
---|
172 | 179 | break; |
---|
.. | .. |
---|
185 | 192 | { |
---|
186 | 193 | irqreturn_t retval; |
---|
187 | 194 | unsigned int flags = 0; |
---|
188 | | - struct pt_regs *regs = get_irq_regs(); |
---|
189 | | - u64 ip = regs ? instruction_pointer(regs) : 0; |
---|
190 | 195 | |
---|
191 | 196 | retval = __handle_irq_event_percpu(desc, &flags); |
---|
192 | 197 | |
---|
193 | | -#ifdef CONFIG_PREEMPT_RT_FULL |
---|
194 | | - desc->random_ip = ip; |
---|
195 | | -#else |
---|
196 | | - add_interrupt_randomness(desc->irq_data.irq, flags, ip); |
---|
197 | | -#endif |
---|
| 198 | + add_interrupt_randomness(desc->irq_data.irq); |
---|
198 | 199 | |
---|
199 | 200 | if (!noirqdebug) |
---|
200 | 201 | note_interrupt(desc, retval); |
---|