diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-09-22 14:12:26 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-09-24 01:31:49 -0400 |
commit | f32af63ed1327451cb91e3816fa043b6c2c52db1 (patch) | |
tree | ccce3ffd1995ea3404c7984c34bc93fafb3740d6 /arch | |
parent | 142597dbbd8a1d516af3dacfa00037f21612e865 (diff) |
powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL
The test to check whether we have _PAGE_SPECIAL defined is broken,
since we always define it, just not always to a meaninful value :-)
That broke 8xx and 40x under some circumstances.
This fixes it by adding _PAGE_SPECIAL for both of these since they
had a free PTE bit, and removing the condition around advertising
it.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/include/asm/pte-40x.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/pte-8xx.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/pte-common.h | 5 |
3 files changed, 2 insertions, 5 deletions
diff --git a/arch/powerpc/include/asm/pte-40x.h b/arch/powerpc/include/asm/pte-40x.h index 6c3e1f4378d4..ec0b0b0d1df9 100644 --- a/arch/powerpc/include/asm/pte-40x.h +++ b/arch/powerpc/include/asm/pte-40x.h | |||
@@ -43,6 +43,7 @@ | |||
43 | #define _PAGE_NO_CACHE 0x004 /* I: caching is inhibited */ | 43 | #define _PAGE_NO_CACHE 0x004 /* I: caching is inhibited */ |
44 | #define _PAGE_WRITETHRU 0x008 /* W: caching is write-through */ | 44 | #define _PAGE_WRITETHRU 0x008 /* W: caching is write-through */ |
45 | #define _PAGE_USER 0x010 /* matches one of the zone permission bits */ | 45 | #define _PAGE_USER 0x010 /* matches one of the zone permission bits */ |
46 | #define _PAGE_SPECIAL 0x020 /* software: Special page */ | ||
46 | #define _PAGE_RW 0x040 /* software: Writes permitted */ | 47 | #define _PAGE_RW 0x040 /* software: Writes permitted */ |
47 | #define _PAGE_DIRTY 0x080 /* software: dirty page */ | 48 | #define _PAGE_DIRTY 0x080 /* software: dirty page */ |
48 | #define _PAGE_HWWRITE 0x100 /* hardware: Dirty & RW, set in exception */ | 49 | #define _PAGE_HWWRITE 0x100 /* hardware: Dirty & RW, set in exception */ |
diff --git a/arch/powerpc/include/asm/pte-8xx.h b/arch/powerpc/include/asm/pte-8xx.h index 94e979718dcf..dd5ea95fe61e 100644 --- a/arch/powerpc/include/asm/pte-8xx.h +++ b/arch/powerpc/include/asm/pte-8xx.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define _PAGE_FILE 0x0002 /* when !present: nonlinear file mapping */ | 32 | #define _PAGE_FILE 0x0002 /* when !present: nonlinear file mapping */ |
33 | #define _PAGE_NO_CACHE 0x0002 /* I: cache inhibit */ | 33 | #define _PAGE_NO_CACHE 0x0002 /* I: cache inhibit */ |
34 | #define _PAGE_SHARED 0x0004 /* No ASID (context) compare */ | 34 | #define _PAGE_SHARED 0x0004 /* No ASID (context) compare */ |
35 | #define _PAGE_SPECIAL 0x0008 /* SW entry, forced to 0 by the TLB miss */ | ||
35 | 36 | ||
36 | /* These five software bits must be masked out when the entry is loaded | 37 | /* These five software bits must be masked out when the entry is loaded |
37 | * into the TLB. | 38 | * into the TLB. |
diff --git a/arch/powerpc/include/asm/pte-common.h b/arch/powerpc/include/asm/pte-common.h index c3b65076a263..f2b370180a09 100644 --- a/arch/powerpc/include/asm/pte-common.h +++ b/arch/powerpc/include/asm/pte-common.h | |||
@@ -25,9 +25,6 @@ | |||
25 | #ifndef _PAGE_WRITETHRU | 25 | #ifndef _PAGE_WRITETHRU |
26 | #define _PAGE_WRITETHRU 0 | 26 | #define _PAGE_WRITETHRU 0 |
27 | #endif | 27 | #endif |
28 | #ifndef _PAGE_SPECIAL | ||
29 | #define _PAGE_SPECIAL 0 | ||
30 | #endif | ||
31 | #ifndef _PAGE_4K_PFN | 28 | #ifndef _PAGE_4K_PFN |
32 | #define _PAGE_4K_PFN 0 | 29 | #define _PAGE_4K_PFN 0 |
33 | #endif | 30 | #endif |
@@ -179,7 +176,5 @@ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void); | |||
179 | #define HAVE_PAGE_AGP | 176 | #define HAVE_PAGE_AGP |
180 | 177 | ||
181 | /* Advertise support for _PAGE_SPECIAL */ | 178 | /* Advertise support for _PAGE_SPECIAL */ |
182 | #ifdef _PAGE_SPECIAL | ||
183 | #define __HAVE_ARCH_PTE_SPECIAL | 179 | #define __HAVE_ARCH_PTE_SPECIAL |
184 | #endif | ||
185 | 180 | ||