diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2007-04-30 01:37:06 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-05-02 06:04:30 -0400 |
commit | 69d48b409cac747cc0707b05b769e38488a6ad35 (patch) | |
tree | 0db8868c915c1ae2035682d6ca138438d6996c6f | |
parent | 57d7909e0d2dd54567ae775e22b14076b777042a (diff) |
[POWERPC] Fix STRICT_MM_TYPECHECKS
Since we don't have it active by default, the STRICT_MM_TYPECHECKS
option has bitrotted again. This patch fixes a couple of simple build
fixes if the option is selected. First, pud_t mustn't be defined in
page.h on 32-bit systems, because it conflicts with the version in the
generic pud-folding code. Second, pci_32.c is missing a __pgprot()
wrapper call. Third, a couple of PS3 files use constants of type
pgprot_t when they need the raw values, we add pgprot_val() calls to
fix this.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/htab.c | 3 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/spu.c | 2 | ||||
-rw-r--r-- | include/asm-powerpc/page.h | 2 |
4 files changed, 5 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index f022862de344..e66064b5093a 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -1658,7 +1658,7 @@ pgprot_t pci_phys_mem_access_prot(struct file *file, | |||
1658 | int i; | 1658 | int i; |
1659 | 1659 | ||
1660 | if (page_is_ram(pfn)) | 1660 | if (page_is_ram(pfn)) |
1661 | return prot; | 1661 | return __pgprot(prot); |
1662 | 1662 | ||
1663 | prot |= _PAGE_NO_CACHE | _PAGE_GUARDED; | 1663 | prot |= _PAGE_NO_CACHE | _PAGE_GUARDED; |
1664 | 1664 | ||
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c index ea60c451cf87..a1409e450c70 100644 --- a/arch/powerpc/platforms/ps3/htab.c +++ b/arch/powerpc/platforms/ps3/htab.c | |||
@@ -273,7 +273,8 @@ void __init ps3_map_htab(void) | |||
273 | 273 | ||
274 | result = lv1_map_htab(0, &htab_addr); | 274 | result = lv1_map_htab(0, &htab_addr); |
275 | 275 | ||
276 | htab = (hpte_t *)__ioremap(htab_addr, htab_size, PAGE_READONLY_X); | 276 | htab = (hpte_t *)__ioremap(htab_addr, htab_size, |
277 | pgprot_val(PAGE_READONLY_X)); | ||
277 | 278 | ||
278 | DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__, | 279 | DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__, |
279 | htab_addr, (unsigned long)htab); | 280 | htab_addr, (unsigned long)htab); |
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c index a397e4e17c13..af8efe3c459a 100644 --- a/arch/powerpc/platforms/ps3/spu.c +++ b/arch/powerpc/platforms/ps3/spu.c | |||
@@ -184,7 +184,7 @@ static int __init setup_areas(struct spu *spu) | |||
184 | 184 | ||
185 | spu_pdata(spu)->shadow = __ioremap( | 185 | spu_pdata(spu)->shadow = __ioremap( |
186 | spu_pdata(spu)->shadow_addr, sizeof(struct spe_shadow), | 186 | spu_pdata(spu)->shadow_addr, sizeof(struct spe_shadow), |
187 | PAGE_READONLY | _PAGE_NO_CACHE | _PAGE_GUARDED); | 187 | pgprot_val(PAGE_READONLY) | _PAGE_NO_CACHE | _PAGE_GUARDED); |
188 | if (!spu_pdata(spu)->shadow) { | 188 | if (!spu_pdata(spu)->shadow) { |
189 | pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__); | 189 | pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__); |
190 | goto fail_ioremap; | 190 | goto fail_ioremap; |
diff --git a/include/asm-powerpc/page.h b/include/asm-powerpc/page.h index b4d38b0b15f8..f37bff0ee889 100644 --- a/include/asm-powerpc/page.h +++ b/include/asm-powerpc/page.h | |||
@@ -126,7 +126,7 @@ typedef struct { unsigned long pmd; } pmd_t; | |||
126 | #define __pmd(x) ((pmd_t) { (x) }) | 126 | #define __pmd(x) ((pmd_t) { (x) }) |
127 | 127 | ||
128 | /* PUD level exusts only on 4k pages */ | 128 | /* PUD level exusts only on 4k pages */ |
129 | #ifndef CONFIG_PPC_64K_PAGES | 129 | #if defined(CONFIG_PPC64) && !defined(CONFIG_PPC_64K_PAGES) |
130 | typedef struct { unsigned long pud; } pud_t; | 130 | typedef struct { unsigned long pud; } pud_t; |
131 | #define pud_val(x) ((x).pud) | 131 | #define pud_val(x) ((x).pud) |
132 | #define __pud(x) ((pud_t) { (x) }) | 132 | #define __pud(x) ((pud_t) { (x) }) |