• Oleg Nesterov's avatar
    uprobes/x86: Fold prepare_fixups() into arch_uprobe_analyze_insn() · ddb69f27
    Oleg Nesterov authored
    No functional changes, preparation.
    
    Shift the code from prepare_fixups() to arch_uprobe_analyze_insn()
    with the following modifications:
    
    	- Do not call insn_get_opcode() again, it was already called
    	  by validate_insn_bits().
    
    	- Move "case 0xea" up. This way "case 0xff" can fall through
    	  to default case.
    
    	- change "case 0xff" to use the nested "switch (MODRM_REG)",
    	  this way the code looks a bit simpler.
    
    	- Make the comments look consistent.
    
    While at it, kill the initialization of rip_rela_target_address and
    ->fixups, we can rely on kzalloc(). We will add the new members into
    arch_uprobe, it would be better to assume that everything is zero by
    default.
    
    TODO: cleanup/fix the mess in validate_insn_bits() paths:
    
    	- validate_insn_64bits() and validate_insn_32bits() should be
    	  unified.
    
    	- "ifdef" is not used consistently; if good_insns_64 depends
    	  on CONFIG_X86_64, then probably good_insns_32 should depend
    	  on CONFIG_X86_32/EMULATION
    
    	- the usage of mm->context.ia32_compat looks wrong if the task
    	  is TIF_X32.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Reviewed-by: default avatarJim Keniston <jkenisto@us.ibm.com>
    Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    ddb69f27
uprobes.c 22.4 KB