提交 b44755cf 编写于 作者: A Adrian Bunk 提交者: 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: NAdrian Bunk <bunk@stusta.de>
Signed-off-by: NDave Jones <davej@redhat.com>
上级 48ac3271
......@@ -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
obj-y = msr-on-cpu.o
obj-$(CONFIG_SMP) += msr-on-cpu.o
......@@ -3,7 +3,6 @@
#include <linux/smp.h>
#include <asm/msr.h>
#ifdef CONFIG_SMP
struct msr_info {
u32 msr_no;
u32 l, h;
......@@ -54,17 +53,6 @@ void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
}
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(wrmsr_on_cpu);
......@@ -4,7 +4,8 @@
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 \
usercopy.o getuser.o putuser.o \
......
......@@ -83,8 +83,19 @@ static inline void wrmsrl (unsigned long msr, unsigned long long val)
: "c" (counter))
#endif /* !CONFIG_PARAVIRT */
#ifdef CONFIG_SMP
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);
#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 */
/* Intel defined MSRs. */
......
......@@ -160,8 +160,19 @@ static inline unsigned int cpuid_edx(unsigned int op)
#define MSR_IA32_UCODE_WRITE 0x79
#define MSR_IA32_UCODE_REV 0x8b
#ifdef CONFIG_SMP
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);
#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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册