iret is 0xcf according to the Intel manual and also to objdump of my
vmlinux:
    1ea8:       48 cf                   iretq

Fix the opcode in arch_decode_instruction.

The previous value (0xc5) seems to correspond to lds.

Signed-off-by: Jiri Slaby <[email protected]>
Cc: Josh Poimboeuf <[email protected]>
Cc: Ingo Molnar <[email protected]>
---
 tools/objtool/arch/x86/decode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/objtool/arch/x86/decode.c b/tools/objtool/arch/x86/decode.c
index 5e0dea2cdc01..039636ffb6c8 100644
--- a/tools/objtool/arch/x86/decode.c
+++ b/tools/objtool/arch/x86/decode.c
@@ -150,9 +150,9 @@ int arch_decode_instruction(struct elf *elf, struct section 
*sec,
                *type = INSN_RETURN;
                break;
 
-       case 0xc5: /* iret */
        case 0xca: /* retf */
        case 0xcb: /* retf */
+       case 0xcf: /* iret */
                *type = INSN_CONTEXT_SWITCH;
                break;
 
-- 
2.11.0

Reply via email to