diff options
author | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-18 17:06:00 -0400 |
---|---|---|
committer | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-18 17:06:00 -0400 |
commit | a215aa7b9ab3759c047201199fba64d3042d7f13 (patch) | |
tree | bca37493d9b2233450e6d3ffced1261d0e4f71fe /arch/sh/include/asm | |
parent | d31199a77ef606f1d06894385f1852181ba6136b (diff) |
Update 2.6.36 to 2.6.36.4wip-dissipation2-jerickso
Diffstat (limited to 'arch/sh/include/asm')
-rw-r--r-- | arch/sh/include/asm/io.h | 10 | ||||
-rw-r--r-- | arch/sh/include/asm/pgtable_32.h | 7 | ||||
-rw-r--r-- | arch/sh/include/asm/syscalls_32.h | 7 |
3 files changed, 19 insertions, 5 deletions
diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h index b237d525d592..34ba197880dd 100644 --- a/arch/sh/include/asm/io.h +++ b/arch/sh/include/asm/io.h | |||
@@ -322,7 +322,15 @@ __ioremap_29bit(phys_addr_t offset, unsigned long size, pgprot_t prot) | |||
322 | * mapping must be done by the PMB or by using page tables. | 322 | * mapping must be done by the PMB or by using page tables. |
323 | */ | 323 | */ |
324 | if (likely(PXSEG(offset) < P3SEG && PXSEG(last_addr) < P3SEG)) { | 324 | if (likely(PXSEG(offset) < P3SEG && PXSEG(last_addr) < P3SEG)) { |
325 | if (unlikely(pgprot_val(prot) & _PAGE_CACHABLE)) | 325 | u64 flags = pgprot_val(prot); |
326 | |||
327 | /* | ||
328 | * Anything using the legacy PTEA space attributes needs | ||
329 | * to be kicked down to page table mappings. | ||
330 | */ | ||
331 | if (unlikely(flags & _PAGE_PCC_MASK)) | ||
332 | return NULL; | ||
333 | if (unlikely(flags & _PAGE_CACHABLE)) | ||
326 | return (void __iomem *)P1SEGADDR(offset); | 334 | return (void __iomem *)P1SEGADDR(offset); |
327 | 335 | ||
328 | return (void __iomem *)P2SEGADDR(offset); | 336 | return (void __iomem *)P2SEGADDR(offset); |
diff --git a/arch/sh/include/asm/pgtable_32.h b/arch/sh/include/asm/pgtable_32.h index e172d696e52b..45743bffe865 100644 --- a/arch/sh/include/asm/pgtable_32.h +++ b/arch/sh/include/asm/pgtable_32.h | |||
@@ -76,6 +76,10 @@ | |||
76 | /* Wrapper for extended mode pgprot twiddling */ | 76 | /* Wrapper for extended mode pgprot twiddling */ |
77 | #define _PAGE_EXT(x) ((unsigned long long)(x) << 32) | 77 | #define _PAGE_EXT(x) ((unsigned long long)(x) << 32) |
78 | 78 | ||
79 | #ifdef CONFIG_X2TLB | ||
80 | #define _PAGE_PCC_MASK 0x00000000 /* No legacy PTEA support */ | ||
81 | #else | ||
82 | |||
79 | /* software: moves to PTEA.TC (Timing Control) */ | 83 | /* software: moves to PTEA.TC (Timing Control) */ |
80 | #define _PAGE_PCC_AREA5 0x00000000 /* use BSC registers for area5 */ | 84 | #define _PAGE_PCC_AREA5 0x00000000 /* use BSC registers for area5 */ |
81 | #define _PAGE_PCC_AREA6 0x80000000 /* use BSC registers for area6 */ | 85 | #define _PAGE_PCC_AREA6 0x80000000 /* use BSC registers for area6 */ |
@@ -89,7 +93,8 @@ | |||
89 | #define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */ | 93 | #define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */ |
90 | #define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */ | 94 | #define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */ |
91 | 95 | ||
92 | #ifndef CONFIG_X2TLB | 96 | #define _PAGE_PCC_MASK 0xe0000001 |
97 | |||
93 | /* copy the ptea attributes */ | 98 | /* copy the ptea attributes */ |
94 | static inline unsigned long copy_ptea_attributes(unsigned long x) | 99 | static inline unsigned long copy_ptea_attributes(unsigned long x) |
95 | { | 100 | { |
diff --git a/arch/sh/include/asm/syscalls_32.h b/arch/sh/include/asm/syscalls_32.h index be201fdc97aa..ae717e3c26d6 100644 --- a/arch/sh/include/asm/syscalls_32.h +++ b/arch/sh/include/asm/syscalls_32.h | |||
@@ -19,9 +19,10 @@ asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, | |||
19 | asmlinkage int sys_vfork(unsigned long r4, unsigned long r5, | 19 | asmlinkage int sys_vfork(unsigned long r4, unsigned long r5, |
20 | unsigned long r6, unsigned long r7, | 20 | unsigned long r6, unsigned long r7, |
21 | struct pt_regs __regs); | 21 | struct pt_regs __regs); |
22 | asmlinkage int sys_execve(const char __user *ufilename, char __user * __user *uargv, | 22 | asmlinkage int sys_execve(const char __user *ufilename, |
23 | char __user * __user *uenvp, unsigned long r7, | 23 | const char __user *const __user *uargv, |
24 | struct pt_regs __regs); | 24 | const char __user *const __user *uenvp, |
25 | unsigned long r7, struct pt_regs __regs); | ||
25 | asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, | 26 | asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, |
26 | unsigned long r6, unsigned long r7, | 27 | unsigned long r6, unsigned long r7, |
27 | struct pt_regs __regs); | 28 | struct pt_regs __regs); |