aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/Kconfig3
-rw-r--r--arch/tile/kernel/ptrace.c13
-rw-r--r--arch/tile/kernel/setup.c2
-rw-r--r--arch/tile/mm/highmem.c3
4 files changed, 13 insertions, 8 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 89cfee07efa9..7e8c2844e093 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -58,6 +58,9 @@ config ARCH_SUPPORTS_OPTIMIZED_INLINING
58config ARCH_PHYS_ADDR_T_64BIT 58config ARCH_PHYS_ADDR_T_64BIT
59 def_bool y 59 def_bool y
60 60
61config ARCH_DMA_ADDR_T_64BIT
62 def_bool y
63
61config LOCKDEP_SUPPORT 64config LOCKDEP_SUPPORT
62 def_bool y 65 def_bool y
63 66
diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c
index 5b20c2874d51..9cd29884c09f 100644
--- a/arch/tile/kernel/ptrace.c
+++ b/arch/tile/kernel/ptrace.c
@@ -45,7 +45,8 @@ void ptrace_disable(struct task_struct *child)
45 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); 45 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
46} 46}
47 47
48long arch_ptrace(struct task_struct *child, long request, long addr, long data) 48long arch_ptrace(struct task_struct *child, long request,
49 unsigned long addr, unsigned long data)
49{ 50{
50 unsigned long __user *datap = (long __user __force *)data; 51 unsigned long __user *datap = (long __user __force *)data;
51 unsigned long tmp; 52 unsigned long tmp;
@@ -57,7 +58,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
57 switch (request) { 58 switch (request) {
58 59
59 case PTRACE_PEEKUSR: /* Read register from pt_regs. */ 60 case PTRACE_PEEKUSR: /* Read register from pt_regs. */
60 if (addr < 0 || addr >= PTREGS_SIZE) 61 if (addr >= PTREGS_SIZE)
61 break; 62 break;
62 childreg = (char *)task_pt_regs(child) + addr; 63 childreg = (char *)task_pt_regs(child) + addr;
63#ifdef CONFIG_COMPAT 64#ifdef CONFIG_COMPAT
@@ -76,7 +77,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
76 break; 77 break;
77 78
78 case PTRACE_POKEUSR: /* Write register in pt_regs. */ 79 case PTRACE_POKEUSR: /* Write register in pt_regs. */
79 if (addr < 0 || addr >= PTREGS_SIZE) 80 if (addr >= PTREGS_SIZE)
80 break; 81 break;
81 childreg = (char *)task_pt_regs(child) + addr; 82 childreg = (char *)task_pt_regs(child) + addr;
82#ifdef CONFIG_COMPAT 83#ifdef CONFIG_COMPAT
@@ -98,7 +99,8 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
98 if (!access_ok(VERIFY_WRITE, datap, PTREGS_SIZE)) 99 if (!access_ok(VERIFY_WRITE, datap, PTREGS_SIZE))
99 break; 100 break;
100 childregs = (long *)task_pt_regs(child); 101 childregs = (long *)task_pt_regs(child);
101 for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i) { 102 for (i = 0; i < sizeof(struct pt_regs)/sizeof(unsigned long);
103 ++i) {
102 ret = __put_user(childregs[i], &datap[i]); 104 ret = __put_user(childregs[i], &datap[i]);
103 if (ret != 0) 105 if (ret != 0)
104 break; 106 break;
@@ -109,7 +111,8 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
109 if (!access_ok(VERIFY_READ, datap, PTREGS_SIZE)) 111 if (!access_ok(VERIFY_READ, datap, PTREGS_SIZE))
110 break; 112 break;
111 childregs = (long *)task_pt_regs(child); 113 childregs = (long *)task_pt_regs(child);
112 for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i) { 114 for (i = 0; i < sizeof(struct pt_regs)/sizeof(unsigned long);
115 ++i) {
113 ret = __get_user(childregs[i], &datap[i]); 116 ret = __get_user(childregs[i], &datap[i]);
114 if (ret != 0) 117 if (ret != 0)
115 break; 118 break;
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index f3a50e74f9a4..ae51cad12da0 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -30,8 +30,6 @@
30#include <linux/timex.h> 30#include <linux/timex.h>
31#include <asm/setup.h> 31#include <asm/setup.h>
32#include <asm/sections.h> 32#include <asm/sections.h>
33#include <asm/sections.h>
34#include <asm/cacheflush.h>
35#include <asm/cacheflush.h> 33#include <asm/cacheflush.h>
36#include <asm/pgalloc.h> 34#include <asm/pgalloc.h>
37#include <asm/mmu_context.h> 35#include <asm/mmu_context.h>
diff --git a/arch/tile/mm/highmem.c b/arch/tile/mm/highmem.c
index 8ef6595e162c..abb57331cf6e 100644
--- a/arch/tile/mm/highmem.c
+++ b/arch/tile/mm/highmem.c
@@ -241,7 +241,7 @@ void __kunmap_atomic(void *kvaddr)
241 pte_t pteval = *pte; 241 pte_t pteval = *pte;
242 int idx, type; 242 int idx, type;
243 243
244 type = kmap_atomic_idx_pop(); 244 type = kmap_atomic_idx();
245 idx = type + KM_TYPE_NR*smp_processor_id(); 245 idx = type + KM_TYPE_NR*smp_processor_id();
246 246
247 /* 247 /*
@@ -252,6 +252,7 @@ void __kunmap_atomic(void *kvaddr)
252 BUG_ON(!pte_present(pteval) && !pte_migrating(pteval)); 252 BUG_ON(!pte_present(pteval) && !pte_migrating(pteval));
253 kmap_atomic_unregister(pte_page(pteval), vaddr); 253 kmap_atomic_unregister(pte_page(pteval), vaddr);
254 kpte_clear_flush(pte, vaddr); 254 kpte_clear_flush(pte, vaddr);
255 kmap_atomic_idx_pop();
255 } else { 256 } else {
256 /* Must be a lowmem page */ 257 /* Must be a lowmem page */
257 BUG_ON(vaddr < PAGE_OFFSET); 258 BUG_ON(vaddr < PAGE_OFFSET);