Commit 31336ed9 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull objtool fixes from Thomas Gleixner:
 "Three fixlets for objtool:

   - Address two segfaults related to missing parameter and clang
     objects

   - Make it compile clean with clang"

* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  objtool: Fix seg fault with clang-compiled objects
  objtool: Fix seg fault caused by missing parameter
  objtool: Fix Clang enum conversion warning
parents 8371e5a0 ce90aaf5
...@@ -138,7 +138,7 @@ int arch_decode_instruction(struct elf *elf, struct section *sec, ...@@ -138,7 +138,7 @@ int arch_decode_instruction(struct elf *elf, struct section *sec,
*type = INSN_STACK; *type = INSN_STACK;
op->src.type = OP_SRC_ADD; op->src.type = OP_SRC_ADD;
op->src.reg = op_to_cfi_reg[modrm_reg][rex_r]; op->src.reg = op_to_cfi_reg[modrm_reg][rex_r];
op->dest.type = OP_SRC_REG; op->dest.type = OP_DEST_REG;
op->dest.reg = CFI_SP; op->dest.reg = CFI_SP;
} }
break; break;
......
...@@ -44,6 +44,9 @@ int cmd_orc(int argc, const char **argv) ...@@ -44,6 +44,9 @@ int cmd_orc(int argc, const char **argv)
const char *objname; const char *objname;
argc--; argv++; argc--; argv++;
if (argc <= 0)
usage_with_options(orc_usage, check_options);
if (!strncmp(argv[0], "gen", 3)) { if (!strncmp(argv[0], "gen", 3)) {
argc = parse_options(argc, argv, check_options, orc_usage, 0); argc = parse_options(argc, argv, check_options, orc_usage, 0);
if (argc != 1) if (argc != 1)
...@@ -52,7 +55,6 @@ int cmd_orc(int argc, const char **argv) ...@@ -52,7 +55,6 @@ int cmd_orc(int argc, const char **argv)
objname = argv[0]; objname = argv[0];
return check(objname, no_fp, no_unreachable, true); return check(objname, no_fp, no_unreachable, true);
} }
if (!strcmp(argv[0], "dump")) { if (!strcmp(argv[0], "dump")) {
......
...@@ -165,6 +165,8 @@ int create_orc_sections(struct objtool_file *file) ...@@ -165,6 +165,8 @@ int create_orc_sections(struct objtool_file *file)
/* create .orc_unwind_ip and .rela.orc_unwind_ip sections */ /* create .orc_unwind_ip and .rela.orc_unwind_ip sections */
sec = elf_create_section(file->elf, ".orc_unwind_ip", sizeof(int), idx); sec = elf_create_section(file->elf, ".orc_unwind_ip", sizeof(int), idx);
if (!sec)
return -1;
ip_relasec = elf_create_rela_section(file->elf, sec); ip_relasec = elf_create_rela_section(file->elf, sec);
if (!ip_relasec) if (!ip_relasec)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment