dotraplinkage void __kprobes do_device_not_available(struct pt_regs *regs, long error) { #ifdef CONFIG_X86_32 if (read_cr0() & X86_CR0_EM) { conditional_sti(regs); math_emulate(0); } else { math_state_restore(); /* interrupts still off */ conditional_sti(regs); } #else math_state_restore(); #endif }
dotraplinkage void __kprobes do_device_not_available(struct pt_regs regs) { #ifdef CONFIG_X86_32 if (read_cr0() & X86_CR0_EM) { struct math_emu_info info = { }; conditional_sti(®s); info.regs = ®s; math_emulate(&info); } else { math_state_restore(); /* interrupts still off */ conditional_sti(®s); } #else math_state_restore(); #endif }