Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Two fixes: one for an ldt_struct handling bug and a cherry-picked objtool fix" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm: Fix use-after-free of ldt_struct objtool: Fix '-mtune=atom' decoding support in objtool 2.0
This commit is contained in:
commit
c153e62105
|
@ -140,9 +140,7 @@ static inline int init_new_context(struct task_struct *tsk,
|
|||
mm->context.execute_only_pkey = -1;
|
||||
}
|
||||
#endif
|
||||
init_new_context_ldt(tsk, mm);
|
||||
|
||||
return 0;
|
||||
return init_new_context_ldt(tsk, mm);
|
||||
}
|
||||
static inline void destroy_context(struct mm_struct *mm)
|
||||
{
|
||||
|
|
|
@ -271,7 +271,7 @@ int arch_decode_instruction(struct elf *elf, struct section *sec,
|
|||
case 0x8d:
|
||||
if (rex == 0x48 && modrm == 0x65) {
|
||||
|
||||
/* lea -disp(%rbp), %rsp */
|
||||
/* lea disp(%rbp), %rsp */
|
||||
*type = INSN_STACK;
|
||||
op->src.type = OP_SRC_ADD;
|
||||
op->src.reg = CFI_BP;
|
||||
|
@ -281,6 +281,30 @@ int arch_decode_instruction(struct elf *elf, struct section *sec,
|
|||
break;
|
||||
}
|
||||
|
||||
if (rex == 0x48 && (modrm == 0xa4 || modrm == 0x64) &&
|
||||
sib == 0x24) {
|
||||
|
||||
/* lea disp(%rsp), %rsp */
|
||||
*type = INSN_STACK;
|
||||
op->src.type = OP_SRC_ADD;
|
||||
op->src.reg = CFI_SP;
|
||||
op->src.offset = insn.displacement.value;
|
||||
op->dest.type = OP_DEST_REG;
|
||||
op->dest.reg = CFI_SP;
|
||||
break;
|
||||
}
|
||||
|
||||
if (rex == 0x48 && modrm == 0x2c && sib == 0x24) {
|
||||
|
||||
/* lea (%rsp), %rbp */
|
||||
*type = INSN_STACK;
|
||||
op->src.type = OP_SRC_REG;
|
||||
op->src.reg = CFI_SP;
|
||||
op->dest.type = OP_DEST_REG;
|
||||
op->dest.reg = CFI_BP;
|
||||
break;
|
||||
}
|
||||
|
||||
if (rex == 0x4c && modrm == 0x54 && sib == 0x24 &&
|
||||
insn.displacement.value == 8) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue