aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-29 11:43:27 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-29 11:43:27 -0500
commit99642e211a789df34347c3f10f0301462837f0c5 (patch)
tree5979e8fd2e480f2d4f20cdab12a7ff92b41bd73e /arch
parent84b9a774008b132a8b5bd5460f639028a9c7f971 (diff)
parent325d6f5593b40b5a48cf4ade74c01681f2ff6044 (diff)
Merge branch 'avr32-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
* 'avr32-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: avr32: Fix OCD refcounting bug avr32: Call tick_nohz_{stop,restart}_sched_tick() in idle loop avr32: Use correct config symbol in atstk1004 board code avr32: Fix broken pte dump code in do_page_fault() AVR32: Define PAGE_SHARED
Diffstat (limited to 'arch')
-rw-r--r--arch/avr32/boards/atstk1000/atstk1004.c2
-rw-r--r--arch/avr32/kernel/process.c4
-rw-r--r--arch/avr32/mm/fault.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c
index 5a77030e07a0..e765a8652b3e 100644
--- a/arch/avr32/boards/atstk1000/atstk1004.c
+++ b/arch/avr32/boards/atstk1000/atstk1004.c
@@ -129,7 +129,7 @@ static int __init atstk1004_init(void)
129#ifdef CONFIG_BOARD_ATSTK100X_SPI1 129#ifdef CONFIG_BOARD_ATSTK100X_SPI1
130 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 130 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
131#endif 131#endif
132#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM 132#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
133 at32_add_device_mci(0); 133 at32_add_device_mci(0);
134#endif 134#endif
135 at32_add_device_lcdc(0, &atstk1000_lcdc_data, 135 at32_add_device_lcdc(0, &atstk1000_lcdc_data,
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
index eaaa69bbdc38..7f4af0b1e111 100644
--- a/arch/avr32/kernel/process.c
+++ b/arch/avr32/kernel/process.c
@@ -11,6 +11,7 @@
11#include <linux/fs.h> 11#include <linux/fs.h>
12#include <linux/ptrace.h> 12#include <linux/ptrace.h>
13#include <linux/reboot.h> 13#include <linux/reboot.h>
14#include <linux/tick.h>
14#include <linux/uaccess.h> 15#include <linux/uaccess.h>
15#include <linux/unistd.h> 16#include <linux/unistd.h>
16 17
@@ -30,8 +31,10 @@ void cpu_idle(void)
30{ 31{
31 /* endless idle loop with no priority at all */ 32 /* endless idle loop with no priority at all */
32 while (1) { 33 while (1) {
34 tick_nohz_stop_sched_tick();
33 while (!need_resched()) 35 while (!need_resched())
34 cpu_idle_sleep(); 36 cpu_idle_sleep();
37 tick_nohz_restart_sched_tick();
35 preempt_enable_no_resched(); 38 preempt_enable_no_resched();
36 schedule(); 39 schedule();
37 preempt_disable(); 40 preempt_disable();
@@ -345,6 +348,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
345 p->thread.cpu_context.ksp = (unsigned long)childregs; 348 p->thread.cpu_context.ksp = (unsigned long)childregs;
346 p->thread.cpu_context.pc = (unsigned long)ret_from_fork; 349 p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
347 350
351 clear_tsk_thread_flag(p, TIF_DEBUG);
348 if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG)) 352 if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG))
349 ocd_enable(p); 353 ocd_enable(p);
350 354
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
index 6560cb18b4e3..ce4e4296b954 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -189,6 +189,8 @@ no_context:
189 189
190 page = sysreg_read(PTBR); 190 page = sysreg_read(PTBR);
191 printk(KERN_ALERT "ptbr = %08lx", page); 191 printk(KERN_ALERT "ptbr = %08lx", page);
192 if (address >= TASK_SIZE)
193 page = (unsigned long)swapper_pg_dir;
192 if (page) { 194 if (page) {
193 page = ((unsigned long *)page)[address >> 22]; 195 page = ((unsigned long *)page)[address >> 22];
194 printk(" pgd = %08lx", page); 196 printk(" pgd = %08lx", page);