Commit b44755cf authored by Adrian Bunk's avatar Adrian Bunk Committed by Dave Jones

{rd,wr}msr_on_cpu SMP=n optimization

Let's save a few bytes in the CONFIG_SMP=n case.
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent 48ac3271
...@@ -8,4 +8,4 @@ lib-y = checksum.o delay.o usercopy.o getuser.o putuser.o memcpy.o strstr.o \ ...@@ -8,4 +8,4 @@ lib-y = checksum.o delay.o usercopy.o getuser.o putuser.o memcpy.o strstr.o \
lib-$(CONFIG_X86_USE_3DNOW) += mmx.o lib-$(CONFIG_X86_USE_3DNOW) += mmx.o
obj-y = msr-on-cpu.o obj-$(CONFIG_SMP) += msr-on-cpu.o
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include <linux/smp.h> #include <linux/smp.h>
#include <asm/msr.h> #include <asm/msr.h>
#ifdef CONFIG_SMP
struct msr_info { struct msr_info {
u32 msr_no; u32 msr_no;
u32 l, h; u32 l, h;
...@@ -54,17 +53,6 @@ void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) ...@@ -54,17 +53,6 @@ void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
} }
preempt_enable(); preempt_enable();
} }
#else
void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
{
rdmsr(msr_no, *l, *h);
}
void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
{
wrmsr(msr_no, l, h);
}
#endif
EXPORT_SYMBOL(rdmsr_on_cpu); EXPORT_SYMBOL(rdmsr_on_cpu);
EXPORT_SYMBOL(wrmsr_on_cpu); EXPORT_SYMBOL(wrmsr_on_cpu);
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
CFLAGS_csum-partial.o := -funroll-loops CFLAGS_csum-partial.o := -funroll-loops
obj-y := io.o iomap_copy.o msr-on-cpu.o obj-y := io.o iomap_copy.o
obj-$(CONFIG_SMP) += msr-on-cpu.o
lib-y := csum-partial.o csum-copy.o csum-wrappers.o delay.o \ lib-y := csum-partial.o csum-copy.o csum-wrappers.o delay.o \
usercopy.o getuser.o putuser.o \ usercopy.o getuser.o putuser.o \
......
...@@ -83,8 +83,19 @@ static inline void wrmsrl (unsigned long msr, unsigned long long val) ...@@ -83,8 +83,19 @@ static inline void wrmsrl (unsigned long msr, unsigned long long val)
: "c" (counter)) : "c" (counter))
#endif /* !CONFIG_PARAVIRT */ #endif /* !CONFIG_PARAVIRT */
#ifdef CONFIG_SMP
void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
#else /* CONFIG_SMP */
static inline void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
{
rdmsr(msr_no, *l, *h);
}
static inline void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
{
wrmsr(msr_no, l, h);
}
#endif /* CONFIG_SMP */
/* symbolic names for some interesting MSRs */ /* symbolic names for some interesting MSRs */
/* Intel defined MSRs. */ /* Intel defined MSRs. */
......
...@@ -160,8 +160,19 @@ static inline unsigned int cpuid_edx(unsigned int op) ...@@ -160,8 +160,19 @@ static inline unsigned int cpuid_edx(unsigned int op)
#define MSR_IA32_UCODE_WRITE 0x79 #define MSR_IA32_UCODE_WRITE 0x79
#define MSR_IA32_UCODE_REV 0x8b #define MSR_IA32_UCODE_REV 0x8b
#ifdef CONFIG_SMP
void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
#else /* CONFIG_SMP */
static inline void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
{
rdmsr(msr_no, *l, *h);
}
static inline void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
{
wrmsr(msr_no, l, h);
}
#endif /* CONFIG_SMP */
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment