diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-02-04 12:16:03 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-02-04 12:16:03 -0500 |
commit | d2fc0bacd5c438cb459fdf531eff00ab18422a00 (patch) | |
tree | d0ea52e4d2ad2fac12e19eaf6891c6af98353cfc /include/asm-x86/system.h | |
parent | 93890b71a34f9490673a6edd56b61c2124215e46 (diff) | |
parent | 795d45b22c079946332bf3825afefe5a981a97b6 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (78 commits)
x86: fix RTC lockdep warning: potential hardirq recursion
x86: cpa, micro-optimization
x86: cpa, clean up code flow
x86: cpa, eliminate CPA_ enum
x86: cpa, cleanups
x86: implement gbpages support in change_page_attr()
x86: support gbpages in pagetable dump
x86: add gbpages support to lookup_address
x86: add pgtable accessor functions for gbpages
x86: add PUD_PAGE_SIZE
x86: add feature macros for the gbpages cpuid bit
x86: switch direct mapping setup over to set_pte
x86: fix page-present check in cpa_flush_range
x86: remove cpa warning
x86: remove now unused clear_kernel_mapping
x86: switch pci-gart over to using set_memory_np() instead of clear_kernel_mapping()
x86: cpa selftest, skip non present entries
x86: CPA fix pagetable split
x86: rename LARGE_PAGE_SIZE to PMD_PAGE_SIZE
x86: cpa, fix lookup_address
...
Diffstat (limited to 'include/asm-x86/system.h')
-rw-r--r-- | include/asm-x86/system.h | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h index ee32ef9367f4..9cff02ffe6c2 100644 --- a/include/asm-x86/system.h +++ b/include/asm-x86/system.h | |||
@@ -20,8 +20,8 @@ | |||
20 | #ifdef CONFIG_X86_32 | 20 | #ifdef CONFIG_X86_32 |
21 | 21 | ||
22 | struct task_struct; /* one of the stranger aspects of C forward declarations */ | 22 | struct task_struct; /* one of the stranger aspects of C forward declarations */ |
23 | extern struct task_struct *FASTCALL(__switch_to(struct task_struct *prev, | 23 | struct task_struct *__switch_to(struct task_struct *prev, |
24 | struct task_struct *next)); | 24 | struct task_struct *next); |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Saving eflags is important. It switches not only IOPL between tasks, | 27 | * Saving eflags is important. It switches not only IOPL between tasks, |
@@ -130,10 +130,7 @@ extern void load_gs_index(unsigned); | |||
130 | "movl %k1, %%" #seg "\n\t" \ | 130 | "movl %k1, %%" #seg "\n\t" \ |
131 | "jmp 2b\n" \ | 131 | "jmp 2b\n" \ |
132 | ".previous\n" \ | 132 | ".previous\n" \ |
133 | ".section __ex_table,\"a\"\n\t" \ | 133 | _ASM_EXTABLE(1b,3b) \ |
134 | _ASM_ALIGN "\n\t" \ | ||
135 | _ASM_PTR " 1b,3b\n" \ | ||
136 | ".previous" \ | ||
137 | : :"r" (value), "r" (0)) | 134 | : :"r" (value), "r" (0)) |
138 | 135 | ||
139 | 136 | ||
@@ -214,12 +211,10 @@ static inline unsigned long native_read_cr4_safe(void) | |||
214 | /* This could fault if %cr4 does not exist. In x86_64, a cr4 always | 211 | /* This could fault if %cr4 does not exist. In x86_64, a cr4 always |
215 | * exists, so it will never fail. */ | 212 | * exists, so it will never fail. */ |
216 | #ifdef CONFIG_X86_32 | 213 | #ifdef CONFIG_X86_32 |
217 | asm volatile("1: mov %%cr4, %0 \n" | 214 | asm volatile("1: mov %%cr4, %0\n" |
218 | "2: \n" | 215 | "2:\n" |
219 | ".section __ex_table,\"a\" \n" | 216 | _ASM_EXTABLE(1b,2b) |
220 | ".long 1b,2b \n" | 217 | : "=r" (val), "=m" (__force_order) : "0" (0)); |
221 | ".previous \n" | ||
222 | : "=r" (val), "=m" (__force_order) : "0" (0)); | ||
223 | #else | 218 | #else |
224 | val = native_read_cr4(); | 219 | val = native_read_cr4(); |
225 | #endif | 220 | #endif |
@@ -276,9 +271,9 @@ static inline void native_wbinvd(void) | |||
276 | 271 | ||
277 | #endif /* __KERNEL__ */ | 272 | #endif /* __KERNEL__ */ |
278 | 273 | ||
279 | static inline void clflush(void *__p) | 274 | static inline void clflush(volatile void *__p) |
280 | { | 275 | { |
281 | asm volatile("clflush %0" : "+m" (*(char __force *)__p)); | 276 | asm volatile("clflush %0" : "+m" (*(volatile char __force *)__p)); |
282 | } | 277 | } |
283 | 278 | ||
284 | #define nop() __asm__ __volatile__ ("nop") | 279 | #define nop() __asm__ __volatile__ ("nop") |