From f13bd3e7935f7020f7c622bf3f8cae8eee757a53 Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Wed, 30 Jan 2008 13:33:12 +0100 Subject: [PATCH] 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 Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- arch/x86/kernel/kprobes.c | 4 ++-- arch/x86/kernel/step.c | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c index 93aff49798..edc0a8e592 100644 --- a/arch/x86/kernel/kprobes.c +++ b/arch/x86/kernel/kprobes.c @@ -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) diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c index 5884dd485d..b801e76ceb 100644 --- a/arch/x86/kernel/step.c +++ b/arch/x86/kernel/step.c @@ -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 } /* -- 2.39.5