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
This commit is contained in:
commit
99642e211a
@ -129,7 +129,7 @@ static int __init atstk1004_init(void)
|
|||||||
#ifdef CONFIG_BOARD_ATSTK100X_SPI1
|
#ifdef CONFIG_BOARD_ATSTK100X_SPI1
|
||||||
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
|
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
|
||||||
#endif
|
#endif
|
||||||
#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM
|
#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
|
||||||
at32_add_device_mci(0);
|
at32_add_device_mci(0);
|
||||||
#endif
|
#endif
|
||||||
at32_add_device_lcdc(0, &atstk1000_lcdc_data,
|
at32_add_device_lcdc(0, &atstk1000_lcdc_data,
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
|
#include <linux/tick.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/unistd.h>
|
#include <linux/unistd.h>
|
||||||
|
|
||||||
@ -30,8 +31,10 @@ void cpu_idle(void)
|
|||||||
{
|
{
|
||||||
/* endless idle loop with no priority at all */
|
/* endless idle loop with no priority at all */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
tick_nohz_stop_sched_tick();
|
||||||
while (!need_resched())
|
while (!need_resched())
|
||||||
cpu_idle_sleep();
|
cpu_idle_sleep();
|
||||||
|
tick_nohz_restart_sched_tick();
|
||||||
preempt_enable_no_resched();
|
preempt_enable_no_resched();
|
||||||
schedule();
|
schedule();
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
@ -345,6 +348,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
|
|||||||
p->thread.cpu_context.ksp = (unsigned long)childregs;
|
p->thread.cpu_context.ksp = (unsigned long)childregs;
|
||||||
p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
|
p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
|
||||||
|
|
||||||
|
clear_tsk_thread_flag(p, TIF_DEBUG);
|
||||||
if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG))
|
if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG))
|
||||||
ocd_enable(p);
|
ocd_enable(p);
|
||||||
|
|
||||||
|
@ -189,6 +189,8 @@ no_context:
|
|||||||
|
|
||||||
page = sysreg_read(PTBR);
|
page = sysreg_read(PTBR);
|
||||||
printk(KERN_ALERT "ptbr = %08lx", page);
|
printk(KERN_ALERT "ptbr = %08lx", page);
|
||||||
|
if (address >= TASK_SIZE)
|
||||||
|
page = (unsigned long)swapper_pg_dir;
|
||||||
if (page) {
|
if (page) {
|
||||||
page = ((unsigned long *)page)[address >> 22];
|
page = ((unsigned long *)page)[address >> 22];
|
||||||
printk(" pgd = %08lx", page);
|
printk(" pgd = %08lx", page);
|
||||||
|
@ -157,6 +157,7 @@ extern struct page *empty_zero_page;
|
|||||||
#define _PAGE_S(x) _PAGE_NORMAL(x)
|
#define _PAGE_S(x) _PAGE_NORMAL(x)
|
||||||
|
|
||||||
#define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ)
|
#define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ)
|
||||||
|
#define PAGE_SHARED _PAGE_S(PAGE_WRITE | PAGE_READ)
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user