Loading arch/x86/kernel/traps.c +4 −3 Original line number Diff line number Diff line Loading @@ -498,14 +498,15 @@ static enum kernel_gp_hint get_kernel_gp_address(struct pt_regs *regs, { u8 insn_buf[MAX_INSN_SIZE]; struct insn insn; int ret; if (copy_from_kernel_nofault(insn_buf, (void *)regs->ip, MAX_INSN_SIZE)) return GP_NO_HINT; kernel_insn_init(&insn, insn_buf, MAX_INSN_SIZE); insn_get_modrm(&insn); insn_get_sib(&insn); ret = insn_decode(&insn, insn_buf, MAX_INSN_SIZE, INSN_MODE_KERN); if (ret < 0) return GP_NO_HINT; *addr = (unsigned long)insn_get_addr_ref(&insn, regs); if (*addr == -1UL) Loading Loading
arch/x86/kernel/traps.c +4 −3 Original line number Diff line number Diff line Loading @@ -498,14 +498,15 @@ static enum kernel_gp_hint get_kernel_gp_address(struct pt_regs *regs, { u8 insn_buf[MAX_INSN_SIZE]; struct insn insn; int ret; if (copy_from_kernel_nofault(insn_buf, (void *)regs->ip, MAX_INSN_SIZE)) return GP_NO_HINT; kernel_insn_init(&insn, insn_buf, MAX_INSN_SIZE); insn_get_modrm(&insn); insn_get_sib(&insn); ret = insn_decode(&insn, insn_buf, MAX_INSN_SIZE, INSN_MODE_KERN); if (ret < 0) return GP_NO_HINT; *addr = (unsigned long)insn_get_addr_ref(&insn, regs); if (*addr == -1UL) Loading