diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-25 18:35:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-25 18:35:32 -0400 |
commit | 0798b1dbfbd9ff2a370c5968c5f0621ef0075fe0 (patch) | |
tree | c7f61ab9683786a070da0933b9981fc74a4d865f /arch/tile/kernel/stack.c | |
parent | ad363e0916423b2e6cdfcdc30ae707ec709f0a65 (diff) | |
parent | 6738d3210aabe3016a1b03cd98a7fc479c229197 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (26 commits)
arch/tile: prefer "tilepro" as the name of the 32-bit architecture
compat: include aio_abi.h for aio_context_t
arch/tile: cleanups for tilegx compat mode
arch/tile: allocate PCI IRQs later in boot
arch/tile: support signal "exception-trace" hook
arch/tile: use better definitions of xchg() and cmpxchg()
include/linux/compat.h: coding-style fixes
tile: add an RTC driver for the Tilera hypervisor
arch/tile: finish enabling support for TILE-Gx 64-bit chip
compat: fixes to allow working with tile arch
arch/tile: update defconfig file to something more useful
tile: do_hardwall_trap: do not play with task->sighand
tile: replace mm->cpu_vm_mask with mm_cpumask()
tile,mn10300: add device parameter to dma_cache_sync()
audit: support the "standard" <asm-generic/unistd.h>
arch/tile: clarify flush_buffer()/finv_buffer() function names
arch/tile: kernel-related cleanups from removing static page size
arch/tile: various header improvements for building drivers
arch/tile: disable GX prefetcher during cache flush
arch/tile: tolerate disabling CONFIG_BLK_DEV_INITRD
...
Diffstat (limited to 'arch/tile/kernel/stack.c')
-rw-r--r-- | arch/tile/kernel/stack.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/tile/kernel/stack.c b/arch/tile/kernel/stack.c index dd81713a90dc..37ee4d037e0b 100644 --- a/arch/tile/kernel/stack.c +++ b/arch/tile/kernel/stack.c | |||
@@ -36,7 +36,7 @@ | |||
36 | #define KBT_LOOP 3 /* Backtrace entered a loop */ | 36 | #define KBT_LOOP 3 /* Backtrace entered a loop */ |
37 | 37 | ||
38 | /* Is address on the specified kernel stack? */ | 38 | /* Is address on the specified kernel stack? */ |
39 | static int in_kernel_stack(struct KBacktraceIterator *kbt, VirtualAddress sp) | 39 | static int in_kernel_stack(struct KBacktraceIterator *kbt, unsigned long sp) |
40 | { | 40 | { |
41 | ulong kstack_base = (ulong) kbt->task->stack; | 41 | ulong kstack_base = (ulong) kbt->task->stack; |
42 | if (kstack_base == 0) /* corrupt task pointer; just follow stack... */ | 42 | if (kstack_base == 0) /* corrupt task pointer; just follow stack... */ |
@@ -45,7 +45,7 @@ static int in_kernel_stack(struct KBacktraceIterator *kbt, VirtualAddress sp) | |||
45 | } | 45 | } |
46 | 46 | ||
47 | /* Is address valid for reading? */ | 47 | /* Is address valid for reading? */ |
48 | static int valid_address(struct KBacktraceIterator *kbt, VirtualAddress address) | 48 | static int valid_address(struct KBacktraceIterator *kbt, unsigned long address) |
49 | { | 49 | { |
50 | HV_PTE *l1_pgtable = kbt->pgtable; | 50 | HV_PTE *l1_pgtable = kbt->pgtable; |
51 | HV_PTE *l2_pgtable; | 51 | HV_PTE *l2_pgtable; |
@@ -97,7 +97,7 @@ static int valid_address(struct KBacktraceIterator *kbt, VirtualAddress address) | |||
97 | } | 97 | } |
98 | 98 | ||
99 | /* Callback for backtracer; basically a glorified memcpy */ | 99 | /* Callback for backtracer; basically a glorified memcpy */ |
100 | static bool read_memory_func(void *result, VirtualAddress address, | 100 | static bool read_memory_func(void *result, unsigned long address, |
101 | unsigned int size, void *vkbt) | 101 | unsigned int size, void *vkbt) |
102 | { | 102 | { |
103 | int retval; | 103 | int retval; |
@@ -124,7 +124,7 @@ static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt) | |||
124 | { | 124 | { |
125 | const char *fault = NULL; /* happy compiler */ | 125 | const char *fault = NULL; /* happy compiler */ |
126 | char fault_buf[64]; | 126 | char fault_buf[64]; |
127 | VirtualAddress sp = kbt->it.sp; | 127 | unsigned long sp = kbt->it.sp; |
128 | struct pt_regs *p; | 128 | struct pt_regs *p; |
129 | 129 | ||
130 | if (!in_kernel_stack(kbt, sp)) | 130 | if (!in_kernel_stack(kbt, sp)) |
@@ -163,7 +163,7 @@ static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt) | |||
163 | } | 163 | } |
164 | 164 | ||
165 | /* Is the pc pointing to a sigreturn trampoline? */ | 165 | /* Is the pc pointing to a sigreturn trampoline? */ |
166 | static int is_sigreturn(VirtualAddress pc) | 166 | static int is_sigreturn(unsigned long pc) |
167 | { | 167 | { |
168 | return (pc == VDSO_BASE); | 168 | return (pc == VDSO_BASE); |
169 | } | 169 | } |
@@ -260,7 +260,7 @@ static void validate_stack(struct pt_regs *regs) | |||
260 | void KBacktraceIterator_init(struct KBacktraceIterator *kbt, | 260 | void KBacktraceIterator_init(struct KBacktraceIterator *kbt, |
261 | struct task_struct *t, struct pt_regs *regs) | 261 | struct task_struct *t, struct pt_regs *regs) |
262 | { | 262 | { |
263 | VirtualAddress pc, lr, sp, r52; | 263 | unsigned long pc, lr, sp, r52; |
264 | int is_current; | 264 | int is_current; |
265 | 265 | ||
266 | /* | 266 | /* |
@@ -331,7 +331,7 @@ EXPORT_SYMBOL(KBacktraceIterator_end); | |||
331 | 331 | ||
332 | void KBacktraceIterator_next(struct KBacktraceIterator *kbt) | 332 | void KBacktraceIterator_next(struct KBacktraceIterator *kbt) |
333 | { | 333 | { |
334 | VirtualAddress old_pc = kbt->it.pc, old_sp = kbt->it.sp; | 334 | unsigned long old_pc = kbt->it.pc, old_sp = kbt->it.sp; |
335 | kbt->new_context = 0; | 335 | kbt->new_context = 0; |
336 | if (!backtrace_next(&kbt->it) && !KBacktraceIterator_restart(kbt)) { | 336 | if (!backtrace_next(&kbt->it) && !KBacktraceIterator_restart(kbt)) { |
337 | kbt->end = KBT_DONE; | 337 | kbt->end = KBT_DONE; |