Hi, In the same lines of the msr.h integration, here it goes a series for system.h. Again, after the headers are turned into one, the paravirt pieces related to system.h comes for free.
Glauber de Oliveira Costa
2007-Dec-04 10:50 UTC
[PATCH 1/8] remove volatile keyword from clflush.
the p parameter is an explicit memory reference, and is enough to prevent gcc to being nasty here. The volatile seems completely not needed. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> --- include/asm-x86/system_32.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/include/asm-x86/system_32.h b/include/asm-x86/system_32.h index ef84688..27e106d 100644 --- a/include/asm-x86/system_32.h +++ b/include/asm-x86/system_32.h @@ -161,7 +161,7 @@ static inline void native_wbinvd(void) asm volatile("wbinvd": : :"memory"); } -static inline void clflush(volatile void *__p) +static inline void clflush(void *__p) { asm volatile("clflush %0" : "+m" (*(char __force *)__p)); } -- 1.4.4.2
This patch finishes the unification of system.h file. i386 needs a constant to be defined, and it is defined inside an ifdef Other than that, pretty much nothing but includes are left in the arch specific headers, and they are deleted. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> --- include/asm-x86/system.h | 10 ++++++++-- include/asm-x86/system_32.h | 15 --------------- include/asm-x86/system_64.h | 9 --------- 3 files changed, 8 insertions(+), 26 deletions(-) diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h index da4bcd1..1a85892 100644 --- a/include/asm-x86/system.h +++ b/include/asm-x86/system.h @@ -2,8 +2,12 @@ #define _ASM_X86_SYSTEM_H_ #include <asm/asm.h> +#include <asm/segment.h> +#include <asm/cpufeature.h> +#include <asm/cmpxchg.h> #include <linux/kernel.h> +#include <linux/irqflags.h> #ifdef CONFIG_X86_32 #define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */ @@ -34,7 +38,10 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, "2" (prev), "d" (next)); \ } while (0) -# include "system_32.h" +/* + * disable hlt during certain critical i/o operations + */ +#define HAVE_DISABLE_HLT #else #define __SAVE(reg, offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t" #define __RESTORE(reg, offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t" @@ -69,7 +76,6 @@ extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, [thread_info] "i" (offsetof(struct task_struct, stack)), \ [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ : "memory", "cc" __EXTRA_CLOBBER) -# include "system_64.h" #endif #ifdef __KERNEL__ diff --git a/include/asm-x86/system_32.h b/include/asm-x86/system_32.h deleted file mode 100644 index 83af464..0000000 --- a/include/asm-x86/system_32.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __ASM_SYSTEM_H -#define __ASM_SYSTEM_H - -#include <asm/segment.h> -#include <asm/cpufeature.h> -#include <asm/cmpxchg.h> - -#include <linux/irqflags.h> - -/* - * disable hlt during certain critical i/o operations - */ -#define HAVE_DISABLE_HLT - -#endif diff --git a/include/asm-x86/system_64.h b/include/asm-x86/system_64.h deleted file mode 100644 index 89af856..0000000 --- a/include/asm-x86/system_64.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __ASM_SYSTEM_H -#define __ASM_SYSTEM_H - -#include <asm/segment.h> -#include <asm/cmpxchg.h> - -#include <linux/irqflags.h> - -#endif -- 1.4.4.2