kernel/kernel/irq/handle.c
.. .. @@ -185,10 +185,16 @@ 185 185 { 186 186 irqreturn_t retval; 187 187 unsigned int flags = 0; 188 + struct pt_regs *regs = get_irq_regs();189 + u64 ip = regs ? instruction_pointer(regs) : 0;188 190 189 191 retval = __handle_irq_event_percpu(desc, &flags); 190 192 191 - add_interrupt_randomness(desc->irq_data.irq, flags);193 +#ifdef CONFIG_PREEMPT_RT_FULL194 + desc->random_ip = ip;195 +#else196 + add_interrupt_randomness(desc->irq_data.irq, flags, ip);197 +#endif192 198 193 199 if (!noirqdebug) 194 200 note_interrupt(desc, retval);