diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-29 11:43:27 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-29 11:43:27 -0500 |
commit | 99642e211a789df34347c3f10f0301462837f0c5 (patch) | |
tree | 5979e8fd2e480f2d4f20cdab12a7ff92b41bd73e | |
parent | 84b9a774008b132a8b5bd5460f639028a9c7f971 (diff) | |
parent | 325d6f5593b40b5a48cf4ade74c01681f2ff6044 (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
-rw-r--r-- | arch/avr32/boards/atstk1000/atstk1004.c | 2 | ||||
-rw-r--r-- | arch/avr32/kernel/process.c | 4 | ||||
-rw-r--r-- | arch/avr32/mm/fault.c | 2 | ||||
-rw-r--r-- | include/asm-avr32/pgtable.h | 1 |
4 files changed, 8 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); |
diff --git a/include/asm-avr32/pgtable.h b/include/asm-avr32/pgtable.h index 018f6e2a0242..3ae7b548fce7 100644 --- a/include/asm-avr32/pgtable.h +++ b/include/asm-avr32/pgtable.h | |||
@@ -157,6 +157,7 @@ extern struct page *empty_zero_page; | |||
157 | #define _PAGE_S(x) _PAGE_NORMAL(x) | 157 | #define _PAGE_S(x) _PAGE_NORMAL(x) |
158 | 158 | ||
159 | #define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ) | 159 | #define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ) |
160 | #define PAGE_SHARED _PAGE_S(PAGE_WRITE | PAGE_READ) | ||
160 | 161 | ||
161 | #ifndef __ASSEMBLY__ | 162 | #ifndef __ASSEMBLY__ |
162 | /* | 163 | /* |