1
0
Fork 0

{rd,wr}msr_on_cpu SMP=n optimization

Let's save a few bytes in the CONFIG_SMP=n case.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Dave Jones <davej@redhat.com>
hifive-unleashed-5.1
Adrian Bunk 2007-02-20 01:07:13 +01:00 committed by Dave Jones
parent 48ac3271e5
commit b44755cfaa
5 changed files with 25 additions and 14 deletions

View File

@ -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

View File

@ -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);

View File

@ -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 \

View File

@ -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. */

View File

@ -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