forked from luck/tmp_suning_uos_patched
x86: use wrmsrl in kprobes.c, step.c
Where x86_32 passed zero in the high 32 bits, use wrmsrl which will zero extend for us. This allows ifdefs for 32/64 bit to be eliminated. Eliminate ifdef in step.c. Similar cleanup was done when unifying kprobes_32|64.c and wrmsr() was chosen there over wrmsrl(). This patch changes these to wrmsrl. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
e8c10ef9dd
commit
f13bd3e793
@ -410,13 +410,13 @@ static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
|
||||
static void __kprobes clear_btf(void)
|
||||
{
|
||||
if (test_thread_flag(TIF_DEBUGCTLMSR))
|
||||
wrmsr(MSR_IA32_DEBUGCTLMSR, 0, 0);
|
||||
wrmsrl(MSR_IA32_DEBUGCTLMSR, 0);
|
||||
}
|
||||
|
||||
static void __kprobes restore_btf(void)
|
||||
{
|
||||
if (test_thread_flag(TIF_DEBUGCTLMSR))
|
||||
wrmsr(MSR_IA32_DEBUGCTLMSR, current->thread.debugctlmsr, 0);
|
||||
wrmsrl(MSR_IA32_DEBUGCTLMSR, current->thread.debugctlmsr);
|
||||
}
|
||||
|
||||
static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
||||
|
@ -229,11 +229,7 @@ static void write_debugctlmsr(struct task_struct *child, unsigned long val)
|
||||
if (child != current)
|
||||
return;
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
wrmsrl(MSR_IA32_DEBUGCTLMSR, val);
|
||||
#else
|
||||
wrmsr(MSR_IA32_DEBUGCTLMSR, val, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user