On 08/09, Sebastian Andrzej Siewior wrote: > > v1..v2: re-use auprobe->fixups for fixups
Yes, but > @@ -46,6 +46,8 @@ struct arch_uprobe_task { > #ifdef CONFIG_X86_64 > unsigned long saved_scratch_register; > #endif > +#define UPROBE_CLEAR_TF (1 << 0) > + unsigned int restore_flags; > }; this patch still adds restore_flags into arch_uprobe_task. > static void prepare_fixups(struct arch_uprobe *auprobe, struct insn *insn) > { > - bool fix_ip = true, fix_call = false; /* defaults */ > + bool fix_ip = true, fix_call = false, fix_tf = false; /* defaults */ > int reg; > > insn_get_opcode(insn); /* should be a nop */ > > switch (OPCODE1(insn)) { > + case 0x9d: > + /* popf */ > + fix_tf = true; > + break; > case 0xc3: /* ret/lret */ > case 0xcb: > case 0xc2: > @@ -277,6 +284,8 @@ static void prepare_fixups(struct arch_uprobe *auprobe, > struct insn *insn) > auprobe->fixups |= UPROBE_FIX_IP; > if (fix_call) > auprobe->fixups |= UPROBE_FIX_CALL; > + if (fix_tf) > + auprobe->fixups |= UPROBE_TF_CHANGES; > } I won't insist, but do we really need fix_tf? "case 0x9d" could simply add UPROBE_TF_CHANGES. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/