All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20090428122958.GA19160@linux-mips.org>

diff --git a/a/1.txt b/N1/1.txt
index 841a8c8..7c36e54 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1 +1,2106 @@
 On Mon, Apr 20, 2009 at 10:22:03PM +0800, Wu Zhangjin wrote:
+
+>From e67f78d663a84ef93aa12c3c8c1adf3033c4f9a1 Mon Sep 17 00:00:00 2001
+From: Wu Zhangjin <wuzj@lemote.com>
+Date: Sun, 19 Apr 2009 15:57:41 +0800
+Subject: [PATCH] basic RT_PREEMPT support for mips/loongson2f
+
+This job is based on patch-2.6.24.7-rt27.bz2 & patch-2.6.26.8-rt16.bz2
+from http://www.kernel.org/pub/linux/kernel/projects/rt/
+
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index 4401055..708fcc0 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -663,6 +663,10 @@ config RWSEM_GENERIC_SPINLOCK
+ config RWSEM_XCHGADD_ALGORITHM
+ 	bool
+ 
++config ASM_SEMAPHORE
++	bool
++	default y
++
+
+This config symbol is not being referenced anywhere in the tree.
+
+ config ARCH_HAS_ILOG2_U32
+ 	bool
+ 	default n
+diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h
+index 6c8342a..d3cc457 100644
+--- a/arch/mips/include/asm/asmmacro.h
++++ b/arch/mips/include/asm/asmmacro.h
+@@ -21,7 +21,7 @@
+ #endif
+ 
+ #ifdef CONFIG_MIPS_MT_SMTC
+-	.macro	local_irq_enable reg=t0
++	.macro	raw_local_irq_enable reg=t0
+
+Renaming this function and the others seems like a good cleanup but please
+break such cleanup out and submit them separatly.
+
+ 	mfc0	\reg, CP0_TCSTATUS
+ 	ori	\reg, \reg, TCSTATUS_IXMT
+ 	xori	\reg, \reg, TCSTATUS_IXMT
+@@ -29,31 +29,31 @@
+ 	_ehb
+ 	.endm
+ 
+-	.macro	local_irq_disable reg=t0
++	.macro	raw_local_irq_disable reg=t0
+ 	mfc0	\reg, CP0_TCSTATUS
+ 	ori	\reg, \reg, TCSTATUS_IXMT
+ 	mtc0	\reg, CP0_TCSTATUS
+ 	_ehb
+ 	.endm
+ #elif defined(CONFIG_CPU_MIPSR2)
+-	.macro	local_irq_enable reg=t0
++	.macro	raw_local_irq_enable reg=t0
+ 	ei
+ 	irq_enable_hazard
+ 	.endm
+ 
+-	.macro	local_irq_disable reg=t0
++	.macro	raw_local_irq_disable reg=t0
+ 	di
+ 	irq_disable_hazard
+ 	.endm
+ #else
+-	.macro	local_irq_enable reg=t0
++	.macro	raw_local_irq_enable reg=t0
+ 	mfc0	\reg, CP0_STATUS
+ 	ori	\reg, \reg, 1
+ 	mtc0	\reg, CP0_STATUS
+ 	irq_enable_hazard
+ 	.endm
+ 
+-	.macro	local_irq_disable reg=t0
++	.macro	raw_local_irq_disable reg=t0
+ 	mfc0	\reg, CP0_STATUS
+ 	ori	\reg, \reg, 1
+ 	xori	\reg, \reg, 1
+diff --git a/arch/mips/include/asm/i8253.h b/arch/mips/include/asm/i8253.h
+index 5dabc87..7891111 100644
+--- a/arch/mips/include/asm/i8253.h
++++ b/arch/mips/include/asm/i8253.h
+@@ -14,7 +14,7 @@
+ 
+ #define PIT_TICK_RATE		1193182UL
+ 
+-extern spinlock_t i8253_lock;
++extern raw_spinlock_t i8253_lock;
+ 
+ extern void setup_pit_timer(void);
+ 
+diff --git a/arch/mips/include/asm/i8259.h b/arch/mips/include/asm/i8259.h
+index 8572a2d..acafca9 100644
+--- a/arch/mips/include/asm/i8259.h
++++ b/arch/mips/include/asm/i8259.h
+@@ -35,7 +35,7 @@
+ #define SLAVE_ICW4_DEFAULT	0x01
+ #define PIC_ICW4_AEOI		2
+ 
+-extern spinlock_t i8259A_lock;
++extern raw_spinlock_t i8259A_lock;
+ 
+ extern int i8259A_irq_pending(unsigned int irq);
+ extern void make_8259A_irq(unsigned int irq);
+diff --git a/arch/mips/include/asm/kdebug.h b/arch/mips/include/asm/kdebug.h
+index 5bf62aa..3edbe56 100644
+--- a/arch/mips/include/asm/kdebug.h
++++ b/arch/mips/include/asm/kdebug.h
+@@ -8,6 +8,7 @@ enum die_val {
+ 	DIE_FP,
+ 	DIE_TRAP,
+ 	DIE_RI,
++	DIE_NMI_IPI,
+ };
+ 
+ #endif /* _ASM_MIPS_KDEBUG_H */
+
+This patch only defines DIE_NMI_IPI but the only user is a x86-only
+watchdog driver.  Drop?
+
+diff --git a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
+index 01d08d6..1cb4aa3 100644
+--- a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
++++ b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
+@@ -17,6 +17,9 @@
+ #ifndef __ASM_LEMOTE_CPU_FEATURE_OVERRIDES_H
+ #define __ASM_LEMOTE_CPU_FEATURE_OVERRIDES_H
+ 
++/* for RT_PREEMPT */
++#define finish_arch_switch_empty
++
+
+The whole finish_arch_switch_empty thing looks broken.  Drop it.
+
+ #define cpu_has_llsc 1
+ 
+ #define cpu_has_tlb		1
+diff --git a/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h b/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h
+index 275eaf9..f703cc3 100644
+--- a/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h
++++ b/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h
+@@ -1,6 +1,8 @@
+ #ifndef __ASM_MACH_TX49XX_CPU_FEATURE_OVERRIDES_H
+ #define __ASM_MACH_TX49XX_CPU_FEATURE_OVERRIDES_H
+ 
++#define finish_arch_switch_empty
++
+ #define cpu_has_llsc	1
+ #define cpu_has_64bits	1
+ #define cpu_has_inclusive_pcaches	0
+diff --git a/arch/mips/include/asm/rwsem.h b/arch/mips/include/asm/rwsem.h
+new file mode 100644
+index 0000000..4e57263
+--- /dev/null
++++ b/arch/mips/include/asm/rwsem.h
+
+Your tree always defines RWSEM_GENERIC_SPINLOCK, so this file will never
+be included, not even when building a non-RT kernel.
+
+@@ -0,0 +1,176 @@
++/*
++ * include/asm-mips/rwsem.h: R/W semaphores for MIPS using the stuff
++ * in lib/rwsem.c.  Adapted largely from include/asm-ppc/rwsem.h
++ * by john.cooper@timesys.com
++ */
++
++#ifndef _MIPS_RWSEM_H
++#define _MIPS_RWSEM_H
++
++#ifndef _LINUX_RWSEM_H
++#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
++#endif
++
++#ifdef __KERNEL__
++#include <linux/list.h>
++#include <linux/spinlock.h>
++#include <asm/atomic.h>
++#include <asm/system.h>
++
++/*
++ * the semaphore definition
++ */
++struct compat_rw_semaphore {
++	/* XXX this should be able to be an atomic_t  -- paulus */
++	signed long		count;
++#define RWSEM_UNLOCKED_VALUE		0x00000000
++#define RWSEM_ACTIVE_BIAS		0x00000001
++#define RWSEM_ACTIVE_MASK		0x0000ffff
++#define RWSEM_WAITING_BIAS		(-0x00010000)
++#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
++#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
++	raw_spinlock_t		wait_lock;
++	struct list_head	wait_list;
++#if RWSEM_DEBUG
++	int			debug;
++#endif
++};
++
++/*
++ * initialisation
++ */
++#if RWSEM_DEBUG
++#define __RWSEM_DEBUG_INIT      , 0
++#else
++#define __RWSEM_DEBUG_INIT	/* */
++#endif
++
++#define __COMPAT_RWSEM_INITIALIZER(name) \
++	{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, \
++	  LIST_HEAD_INIT((name).wait_list) \
++	  __RWSEM_DEBUG_INIT }
++
++#define COMPAT_DECLARE_RWSEM(name)		\
++	struct compat_rw_semaphore name = __COMPAT_RWSEM_INITIALIZER(name)
++
++extern struct compat_rw_semaphore *rwsem_down_read_failed(struct compat_rw_semaphore *sem);
++extern struct compat_rw_semaphore *rwsem_down_write_failed(struct compat_rw_semaphore *sem);
++extern struct compat_rw_semaphore *rwsem_wake(struct compat_rw_semaphore *sem);
++extern struct compat_rw_semaphore *rwsem_downgrade_wake(struct compat_rw_semaphore *sem);
++
++static inline void compat_init_rwsem(struct compat_rw_semaphore *sem)
++{
++	sem->count = RWSEM_UNLOCKED_VALUE;
++	spin_lock_init(&sem->wait_lock);
++	INIT_LIST_HEAD(&sem->wait_list);
++#if RWSEM_DEBUG
++	sem->debug = 0;
++#endif
++}
++
++/*
++ * lock for reading
++ */
++static inline void __down_read(struct compat_rw_semaphore *sem)
++{
++	if (atomic_inc_return((atomic_t *)(&sem->count)) > 0)
++		smp_wmb();
++	else
++		rwsem_down_read_failed(sem);
++}
++
++static inline int __down_read_trylock(struct compat_rw_semaphore *sem)
++{
++	int tmp;
++
++	while ((tmp = sem->count) >= 0) {
++		if (tmp == cmpxchg(&sem->count, tmp,
++				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
++			smp_wmb();
++			return 1;
++		}
++	}
++	return 0;
++}
++
++/*
++ * lock for writing
++ */
++static inline void __down_write(struct compat_rw_semaphore *sem)
++{
++	int tmp;
++
++	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
++				(atomic_t *)(&sem->count));
++	if (tmp == RWSEM_ACTIVE_WRITE_BIAS)
++		smp_wmb();
++	else
++		rwsem_down_write_failed(sem);
++}
++
++static inline int __down_write_trylock(struct compat_rw_semaphore *sem)
++{
++	int tmp;
++
++	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
++		      RWSEM_ACTIVE_WRITE_BIAS);
++	smp_wmb();
++	return tmp == RWSEM_UNLOCKED_VALUE;
++}
++
++/*
++ * unlock after reading
++ */
++static inline void __up_read(struct compat_rw_semaphore *sem)
++{
++	int tmp;
++
++	smp_wmb();
++	tmp = atomic_dec_return((atomic_t *)(&sem->count));
++	if (tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0)
++		rwsem_wake(sem);
++}
++
++/*
++ * unlock after writing
++ */
++static inline void __up_write(struct compat_rw_semaphore *sem)
++{
++	smp_wmb();
++	if (atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
++			      (atomic_t *)(&sem->count)) < 0)
++		rwsem_wake(sem);
++}
++
++/*
++ * implement atomic add functionality
++ */
++static inline void rwsem_atomic_add(int delta, struct compat_rw_semaphore *sem)
++{
++	atomic_add(delta, (atomic_t *)(&sem->count));
++}
++
++/*
++ * downgrade write lock to read lock
++ */
++static inline void __downgrade_write(struct compat_rw_semaphore *sem)
++{
++	int tmp;
++
++	smp_wmb();
++	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
++	if (tmp < 0)
++		rwsem_downgrade_wake(sem);
++}
++
++/*
++ * implement exchange and add functionality
++ */
++static inline int rwsem_atomic_update(int delta, struct compat_rw_semaphore *sem)
++{
++	smp_mb();
++	return atomic_add_return(delta, (atomic_t *)(&sem->count));
++}
++
++#endif /* __KERNEL__ */
++#endif /* _MIPS_RWSEM_H */
+diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h
+index 0884947..6415b94 100644
+--- a/arch/mips/include/asm/spinlock.h
++++ b/arch/mips/include/asm/spinlock.h
+@@ -34,7 +34,7 @@
+  * becomes equal to the the initial value of the tail.
+  */
+ 
+-static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
++static inline int __raw_spin_is_locked(__raw_spinlock_t *lock)
+ {
+ 	unsigned int counters = ACCESS_ONCE(lock->lock);
+ 
+@@ -45,7 +45,7 @@ static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
+ #define __raw_spin_unlock_wait(x) \
+ 	while (__raw_spin_is_locked(x)) { cpu_relax(); }
+ 
+-static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
++static inline int __raw_spin_is_contended(__raw_spinlock_t *lock)
+ {
+ 	unsigned int counters = ACCESS_ONCE(lock->lock);
+ 
+@@ -53,7 +53,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)
+ }
+ #define __raw_spin_is_contended	__raw_spin_is_contended
+ 
+-static inline void __raw_spin_lock(raw_spinlock_t *lock)
++static inline void __raw_spin_lock(__raw_spinlock_t *lock)
+ {
+ 	int my_ticket;
+ 	int tmp;
+@@ -134,7 +134,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)
+ 	smp_llsc_mb();
+ }
+ 
+-static inline void __raw_spin_unlock(raw_spinlock_t *lock)
++static inline void __raw_spin_unlock(__raw_spinlock_t *lock)
+ {
+ 	int tmp;
+ 
+@@ -174,7 +174,7 @@ static inline void __raw_spin_unlock(raw_spinlock_t *lock)
+ 	}
+ }
+ 
+-static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)
++static inline unsigned int __raw_spin_trylock(__raw_spinlock_t *lock)
+ {
+ 	int tmp, tmp2, tmp3;
+ 
+@@ -256,7 +256,7 @@ static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)
+  */
+ #define __raw_write_can_lock(rw)	(!(rw)->lock)
+ 
+-static inline void __raw_read_lock(raw_rwlock_t *rw)
++static inline void __raw_read_lock(__raw_rwlock_t *rw)
+ {
+ 	unsigned int tmp;
+ 
+@@ -301,7 +301,7 @@ static inline void __raw_read_lock(raw_rwlock_t *rw)
+ /* Note the use of sub, not subu which will make the kernel die with an
+    overflow exception if we ever try to unlock an rwlock that is already
+    unlocked or is being held by a writer.  */
+-static inline void __raw_read_unlock(raw_rwlock_t *rw)
++static inline void __raw_read_unlock(__raw_rwlock_t *rw)
+ {
+ 	unsigned int tmp;
+ 
+@@ -335,7 +335,7 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw)
+ 	}
+ }
+ 
+-static inline void __raw_write_lock(raw_rwlock_t *rw)
++static inline void __raw_write_lock(__raw_rwlock_t *rw)
+ {
+ 	unsigned int tmp;
+ 
+@@ -377,7 +377,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
+ 	smp_llsc_mb();
+ }
+ 
+-static inline void __raw_write_unlock(raw_rwlock_t *rw)
++static inline void __raw_write_unlock(__raw_rwlock_t *rw)
+ {
+ 	smp_mb();
+ 
+@@ -389,7 +389,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
+ 	: "memory");
+ }
+ 
+-static inline int __raw_read_trylock(raw_rwlock_t *rw)
++static inline int __raw_read_trylock(__raw_rwlock_t *rw)
+ {
+ 	unsigned int tmp;
+ 	int ret;
+@@ -433,7 +433,7 @@ static inline int __raw_read_trylock(raw_rwlock_t *rw)
+ 	return ret;
+ }
+ 
+-static inline int __raw_write_trylock(raw_rwlock_t *rw)
++static inline int __raw_write_trylock(__raw_rwlock_t *rw)
+ {
+ 	unsigned int tmp;
+ 	int ret;
+diff --git a/arch/mips/include/asm/spinlock_types.h b/arch/mips/include/asm/spinlock_types.h
+index adeedaa..afdda81 100644
+--- a/arch/mips/include/asm/spinlock_types.h
++++ b/arch/mips/include/asm/spinlock_types.h
+@@ -12,13 +12,13 @@ typedef struct {
+ 	 * bits 15..28: ticket
+ 	 */
+ 	unsigned int lock;
+-} raw_spinlock_t;
++} __raw_spinlock_t;
+ 
+ #define __RAW_SPIN_LOCK_UNLOCKED	{ 0 }
+ 
+ typedef struct {
+ 	volatile unsigned int lock;
+-} raw_rwlock_t;
++} __raw_rwlock_t;
+ 
+ #define __RAW_RW_LOCK_UNLOCKED		{ 0 }
+ 
+diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h
+index cd30f83..4fc1ea2 100644
+--- a/arch/mips/include/asm/system.h
++++ b/arch/mips/include/asm/system.h
+@@ -71,6 +71,9 @@ do {									\
+ 	(last) = resume(prev, next, task_thread_info(next));		\
+ } while (0)
+ 
++
++/* preempt kernel barfs in kernel/sched.c ifdef finish_arch_switch */
++#ifndef finish_arch_switch_empty
+ #define finish_arch_switch(prev)					\
+ do {									\
+ 	if (cpu_has_dsp)						\
+@@ -79,6 +82,7 @@ do {									\
+ 		write_c0_userlocal(current_thread_info()->tp_value);	\
+ 	__restore_watch();						\
+ } while (0)
++#endif
+ 
+ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
+ {
+diff --git a/arch/mips/include/asm/timeofday.h b/arch/mips/include/asm/timeofday.h
+new file mode 100644
+index 0000000..33dda85
+--- /dev/null
++++ b/arch/mips/include/asm/timeofday.h
+@@ -0,0 +1,5 @@
++#ifndef _ASM_MIPS_TIMEOFDAY_H
++#define _ASM_MIPS_TIMEOFDAY_H
++#include <asm-generic/timeofday.h>
++#endif
++
+diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
+index 09ff5bb..60149c6 100644
+--- a/arch/mips/include/asm/uaccess.h
++++ b/arch/mips/include/asm/uaccess.h
+@@ -696,7 +696,6 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
+ 	const void *__cu_from;						\
+ 	long __cu_len;							\
+ 									\
+-	might_sleep();							\
+ 	__cu_to = (to);							\
+ 	__cu_from = (from);						\
+ 	__cu_len = (n);							\
+@@ -752,7 +751,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
+ 	const void *__cu_from;						\
+ 	long __cu_len;							\
+ 									\
+-	might_sleep();							\
+ 	__cu_to = (to);							\
+ 	__cu_from = (from);						\
+ 	__cu_len = (n);							\
+@@ -831,7 +829,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
+ 	const void __user *__cu_from;					\
+ 	long __cu_len;							\
+ 									\
+-	might_sleep();							\
+ 	__cu_to = (to);							\
+ 	__cu_from = (from);						\
+ 	__cu_len = (n);							\
+@@ -862,7 +859,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
+ 	const void __user *__cu_from;					\
+ 	long __cu_len;							\
+ 									\
+-	might_sleep();							\
+ 	__cu_to = (to);							\
+ 	__cu_from = (from);						\
+ 	__cu_len = (n);							\
+@@ -880,7 +876,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
+ 	const void __user *__cu_from;					\
+ 	long __cu_len;							\
+ 									\
+-	might_sleep();							\
+ 	__cu_to = (to);							\
+ 	__cu_from = (from);						\
+ 	__cu_len = (n);							\
+@@ -907,7 +902,6 @@ __clear_user(void __user *addr, __kernel_size_t size)
+ {
+ 	__kernel_size_t res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		"move\t$5, $0\n\t"
+@@ -956,7 +950,6 @@ __strncpy_from_user(char *__to, const char __user *__from, long __len)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		"move\t$5, %2\n\t"
+@@ -993,7 +986,6 @@ strncpy_from_user(char *__to, const char __user *__from, long __len)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		"move\t$5, %2\n\t"
+@@ -1012,7 +1004,6 @@ static inline long __strlen_user(const char __user *s)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		__MODULE_JAL(__strlen_user_nocheck_asm)
+@@ -1042,7 +1033,6 @@ static inline long strlen_user(const char __user *s)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		__MODULE_JAL(__strlen_user_asm)
+@@ -1059,7 +1049,6 @@ static inline long __strnlen_user(const char __user *s, long n)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		"move\t$5, %2\n\t"
+@@ -1090,7 +1079,6 @@ static inline long strnlen_user(const char __user *s, long n)
+ {
+ 	long res;
+ 
+-	might_sleep();
+ 	__asm__ __volatile__(
+ 		"move\t$4, %1\n\t"
+ 		"move\t$5, %2\n\t"
+
+Why did you drop these annotations entirely?  They probably should be
+switched over to might_fault().  Whatever - there are more annotations in
+<asm/checksum.h> will need to be modified the same way.  And this
+should probably be submitted as a separate patch anyway.
+
+diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
+index 0015e44..8603d91 100644
+--- a/arch/mips/kernel/cevt-r4k.c
++++ b/arch/mips/kernel/cevt-r4k.c
+@@ -82,7 +82,7 @@ out:
+ 
+ struct irqaction c0_compare_irqaction = {
+ 	.handler = c0_compare_interrupt,
+-	.flags = IRQF_DISABLED | IRQF_PERCPU,
++	.flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_NODELAY,
+ 	.name = "timer",
+ };
+ 
+diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
+index ffa3310..a993d0a 100644
+--- a/arch/mips/kernel/entry.S
++++ b/arch/mips/kernel/entry.S
+@@ -30,7 +30,7 @@
+ 	.align	5
+ #ifndef CONFIG_PREEMPT
+ FEXPORT(ret_from_exception)
+-	local_irq_disable			# preempt stop
++	raw_local_irq_disable			# preempt stop
+ 	b	__ret_from_irq
+ #endif
+ FEXPORT(ret_from_irq)
+@@ -41,7 +41,7 @@ FEXPORT(__ret_from_irq)
+ 	beqz	t0, resume_kernel
+ 
+ resume_userspace:
+-	local_irq_disable		# make sure we dont miss an
++	raw_local_irq_disable		# make sure we dont miss an
+ 					# interrupt setting need_resched
+ 					# between sampling and return
+ 	LONG_L	a2, TI_FLAGS($28)	# current->work
+@@ -51,7 +51,9 @@ resume_userspace:
+ 
+ #ifdef CONFIG_PREEMPT
+ resume_kernel:
+-	local_irq_disable
++	raw_local_irq_disable
++	lw  t0, kernel_preemption
++	beqz t0,restore_all
+ 	lw	t0, TI_PRE_COUNT($28)
+ 	bnez	t0, restore_all
+ need_resched:
+@@ -61,7 +63,9 @@ need_resched:
+ 	LONG_L	t0, PT_STATUS(sp)		# Interrupts off?
+ 	andi	t0, 1
+ 	beqz	t0, restore_all
++	raw_local_irq_disable
+ 	jal	preempt_schedule_irq
++	sw	zero, TI_PRE_COUNT($28)
+ 	b	need_resched
+ #endif
+ 
+@@ -69,7 +73,7 @@ FEXPORT(ret_from_fork)
+ 	jal	schedule_tail		# a0 = struct task_struct *prev
+ 
+ FEXPORT(syscall_exit)
+-	local_irq_disable		# make sure need_resched and
++	raw_local_irq_disable		# make sure need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	LONG_L	a2, TI_FLAGS($28)	# current->work
+@@ -145,9 +149,9 @@ work_pending:
+ 	andi	t0, a2, _TIF_NEED_RESCHED # a2 is preloaded with TI_FLAGS
+ 	beqz	t0, work_notifysig
+ work_resched:
+-	jal	schedule
++	jal	__schedule
+ 
+-	local_irq_disable		# make sure need_resched and
++	raw_local_irq_disable		# make sure need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	LONG_L	a2, TI_FLAGS($28)
+@@ -170,7 +174,7 @@ syscall_exit_work:
+ 	li	t0, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
+ 	and	t0, a2			# a2 is preloaded with TI_FLAGS
+ 	beqz	t0, work_pending	# trace bit set?
+-	local_irq_enable		# could let do_syscall_trace()
++	raw_local_irq_enable		# could let do_syscall_trace()
+ 					# call schedule() instead
+ 	move	a0, sp
+ 	li	a1, 1
+diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
+index f4d1878..8af4c8f 100644
+--- a/arch/mips/kernel/i8253.c
++++ b/arch/mips/kernel/i8253.c
+@@ -14,7 +14,7 @@
+ #include <asm/io.h>
+ #include <asm/time.h>
+ 
+-DEFINE_SPINLOCK(i8253_lock);
++DEFINE_RAW_SPINLOCK(i8253_lock);
+ EXPORT_SYMBOL(i8253_lock);
+ 
+ /*
+@@ -97,7 +97,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
+ 
+ static struct irqaction irq0  = {
+ 	.handler = timer_interrupt,
+-	.flags = IRQF_DISABLED | IRQF_NOBALANCING,
++	.flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_NODELAY,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "timer"
+ };
+diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
+index 7f9e771..d3f1a15 100644
+--- a/arch/mips/kernel/i8259.c
++++ b/arch/mips/kernel/i8259.c
+@@ -29,7 +29,7 @@
+  */
+ 
+ static int i8259A_auto_eoi = -1;
+-DEFINE_SPINLOCK(i8259A_lock);
++DEFINE_RAW_SPINLOCK(i8259A_lock);
+ static void disable_8259A_irq(unsigned int irq);
+ static void enable_8259A_irq(unsigned int irq);
+ static void mask_and_ack_8259A(unsigned int irq);
+@@ -310,6 +310,7 @@ static void init_8259A(int auto_eoi)
+  */
+ static struct irqaction irq2 = {
+ 	.handler = no_action,
++	.flags = IRQF_NODELAY,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+ };
+diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c
+index 1f60e27..80b7a13 100644
+--- a/arch/mips/kernel/module.c
++++ b/arch/mips/kernel/module.c
+@@ -41,7 +41,7 @@ struct mips_hi16 {
+ static struct mips_hi16 *mips_hi16_list;
+ 
+ static LIST_HEAD(dbe_list);
+-static DEFINE_SPINLOCK(dbe_lock);
++static DEFINE_RAW_SPINLOCK(dbe_lock);
+ 
+ void *module_alloc(unsigned long size)
+ {
+diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
+index ca2e402..048c829 100644
+--- a/arch/mips/kernel/process.c
++++ b/arch/mips/kernel/process.c
+@@ -59,13 +59,17 @@ void __noreturn cpu_idle(void)
+ 
+ 			smtc_idle_loop_hook();
+ #endif
++			stop_critical_timings();
+ 			if (cpu_wait)
+ 				(*cpu_wait)();
++			start_critical_timings();
+ 		}
+ 		tick_nohz_restart_sched_tick();
+-		preempt_enable_no_resched();
+-		schedule();
++		local_irq_disable();
++		__preempt_enable_no_resched();
++		__schedule();
+ 		preempt_disable();
++		local_irq_enable();
+ 	}
+ }
+ 
+diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
+index 9ab70c3..043b6ef 100644
+--- a/arch/mips/kernel/scall32-o32.S
++++ b/arch/mips/kernel/scall32-o32.S
+@@ -69,7 +69,7 @@ stack_done:
+ 1:	sw	v0, PT_R2(sp)		# result
+ 
+ o32_syscall_exit:
+-	local_irq_disable		# make sure need_resched and
++	raw_local_irq_disable		# make sure need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	lw	a2, TI_FLAGS($28)	# current->work
+diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
+index 9b46986..caeb863 100644
+--- a/arch/mips/kernel/scall64-64.S
++++ b/arch/mips/kernel/scall64-64.S
+@@ -72,7 +72,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
+ 1:	sd	v0, PT_R2(sp)		# result
+ 
+ n64_syscall_exit:
+-	local_irq_disable		# make sure need_resched and
++	raw_local_irq_disable		# make sure need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	LONG_L	a2, TI_FLAGS($28)	# current->work
+diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
+index 7438e92..8c6dc72 100644
+--- a/arch/mips/kernel/scall64-n32.S
++++ b/arch/mips/kernel/scall64-n32.S
+@@ -69,7 +69,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
+ 	sd	v0, PT_R0(sp)		# set flag for syscall restarting
+ 1:	sd	v0, PT_R2(sp)		# result
+ 
+-	local_irq_disable		# make sure need_resched and
++	raw_local_irq_disable		# make sure need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	LONG_L  a2, TI_FLAGS($28)	# current->work
+diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
+index b0fef4f..115047c 100644
+--- a/arch/mips/kernel/scall64-o32.S
++++ b/arch/mips/kernel/scall64-o32.S
+@@ -98,7 +98,7 @@ NESTED(handle_sys, PT_SIZE, sp)
+ 1:	sd	v0, PT_R2(sp)		# result
+ 
+ o32_syscall_exit:
+-	local_irq_disable		# make need_resched and
++	raw_local_irq_disable		# make need_resched and
+ 					# signals dont change between
+ 					# sampling and return
+ 	LONG_L	a2, TI_FLAGS($28)
+diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
+index 830c5ef..244f219 100644
+--- a/arch/mips/kernel/signal.c
++++ b/arch/mips/kernel/signal.c
+@@ -549,6 +549,11 @@ static int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
+ 	if (err)
+ 		goto give_sigsegv;
+ 
++#ifdef CONFIG_PREEMPT_RT
++	local_irq_enable();
++	preempt_check_resched();
++#endif
++
+ 	/*
+ 	 * Arguments to signal handler:
+ 	 *
+diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
+index 2e74075..8f914b1 100644
+--- a/arch/mips/kernel/signal32.c
++++ b/arch/mips/kernel/signal32.c
+@@ -667,6 +667,10 @@ static int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
+ 	if (err)
+ 		goto give_sigsegv;
+ 
++#ifdef CONFIG_PREEMPT_RT
++	local_irq_enable();
++	preempt_check_resched();
++#endif
+ 	/*
+ 	 * Arguments to signal handler:
+ 	 *
+diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
+index 3da9470..19aab90 100644
+--- a/arch/mips/kernel/smp.c
++++ b/arch/mips/kernel/smp.c
+@@ -232,6 +232,8 @@ int setup_profiling_timer(unsigned int multiplier)
+ 	return 0;
+ }
+ 
++static DEFINE_RAW_SPINLOCK(tlbstate_lock);
++
+ static void flush_tlb_all_ipi(void *info)
+ {
+ 	local_flush_tlb_all();
+@@ -289,6 +291,7 @@ static inline void smp_on_each_tlb(void (*func) (void *info), void *info)
+ void flush_tlb_mm(struct mm_struct *mm)
+ {
+ 	preempt_disable();
++	spin_lock(&tlbstate_lock);
+ 
+ 	if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {
+ 		smp_on_other_tlbs(flush_tlb_mm_ipi, mm);
+@@ -301,6 +304,7 @@ void flush_tlb_mm(struct mm_struct *mm)
+ 			if (cpu_context(cpu, mm))
+ 				cpu_context(cpu, mm) = 0;
+ 	}
++	spin_unlock(&tlbstate_lock);
+ 	local_flush_tlb_mm(mm);
+ 
+ 	preempt_enable();
+@@ -324,6 +328,8 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l
+ 	struct mm_struct *mm = vma->vm_mm;
+ 
+ 	preempt_disable();
++	spin_lock(&tlbstate_lock);
++
+ 	if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {
+ 		struct flush_tlb_data fd = {
+ 			.vma = vma,
+@@ -341,6 +347,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l
+ 			if (cpu_context(cpu, mm))
+ 				cpu_context(cpu, mm) = 0;
+ 	}
++	spin_unlock(&tlbstate_lock);
+ 	local_flush_tlb_range(vma, start, end);
+ 	preempt_enable();
+ }
+@@ -372,6 +379,7 @@ static void flush_tlb_page_ipi(void *info)
+ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
+ {
+ 	preempt_disable();
++	spin_lock(&tlbstate_lock);
+ 	if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) {
+ 		struct flush_tlb_data fd = {
+ 			.vma = vma,
+@@ -388,6 +396,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
+ 			if (cpu_context(cpu, vma->vm_mm))
+ 				cpu_context(cpu, vma->vm_mm) = 0;
+ 	}
++	spin_unlock(&tlbstate_lock);
+ 	local_flush_tlb_page(vma, page);
+ 	preempt_enable();
+ }
+diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
+index b2d7041..63232be 100644
+--- a/arch/mips/kernel/traps.c
++++ b/arch/mips/kernel/traps.c
+@@ -351,7 +351,7 @@ void show_registers(const struct pt_regs *regs)
+ 	printk("\n");
+ }
+ 
+-static DEFINE_SPINLOCK(die_lock);
++static DEFINE_RAW_SPINLOCK(die_lock);
+ 
+ void __noreturn die(const char * str, const struct pt_regs * regs)
+ {
+diff --git a/arch/mips/lemote/lm2e/irq.c b/arch/mips/lemote/lm2e/irq.c
+index 3e0b7be..417faf4 100644
+--- a/arch/mips/lemote/lm2e/irq.c
++++ b/arch/mips/lemote/lm2e/irq.c
+@@ -92,6 +92,7 @@ asmlinkage void plat_irq_dispatch(void)
+ 
+ static struct irqaction cascade_irqaction = {
+ 	.handler = no_action,
++	.flags = IRQF_NODELAY,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+ };
+@@ -105,7 +106,8 @@ void __init arch_init_irq(void)
+ 	 * int-handler is not on bootstrap
+ 	 */
+ 	clear_c0_status(ST0_IM | ST0_BEV);
+-	local_irq_disable();
++	if (!irq_disabled())
++		raw_local_irq_disable();
+ 
+ 	/* most bonito irq should be level triggered */
+ 	BONITO_INTEDGE = BONITO_ICU_SYSTEMERR | BONITO_ICU_MASTERERR |
+diff --git a/arch/mips/lemote/lm2f/lmbook/irq.c b/arch/mips/lemote/lm2f/lmbook/irq.c
+index a0039eb..b7334ac 100644
+--- a/arch/mips/lemote/lm2f/lmbook/irq.c
++++ b/arch/mips/lemote/lm2f/lmbook/irq.c
+@@ -174,6 +174,7 @@ asmlinkage void plat_irq_dispatch(void)
+ 
+ static struct irqaction cascade_irqaction = {
+ 	.handler = no_action,
++	.flags = IRQF_NODELAY,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+ };
+@@ -187,7 +188,7 @@ static struct irqaction ip6_irqaction = {
+ 	.handler = ip6_action,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+-	.flags = IRQF_SHARED,
++	.flags = IRQF_SHARED | IRQF_NODELAY,
+ };
+ 
+ void __init arch_init_irq(void)
+@@ -199,7 +200,8 @@ void __init arch_init_irq(void)
+ 	 * int-handler is not on bootstrap
+ 	 */
+ 	clear_c0_status(ST0_IM | ST0_BEV);
+-	local_irq_disable();
++	if (!irqs_disabled())
++		raw_local_irq_disable();
+ 	
+ 	/* setup cs5536 as high level */
+ 	BONITO_INTPOL  = (1 << 11 | 1 << 12);
+diff --git a/arch/mips/lemote/lm2f/lmbox/irq.c b/arch/mips/lemote/lm2f/lmbox/irq.c
+index d26da86..164e0f2 100644
+--- a/arch/mips/lemote/lm2f/lmbox/irq.c
++++ b/arch/mips/lemote/lm2f/lmbox/irq.c
+@@ -174,6 +174,7 @@ asmlinkage void plat_irq_dispatch(void)
+ 
+ static struct irqaction cascade_irqaction = {
+ 	.handler = no_action,
++	.flags = IRQF_NODELAY,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+ };
+@@ -187,7 +188,7 @@ static struct irqaction ip6_irqaction = {
+ 	.handler = ip6_action,
+ 	.mask = CPU_MASK_NONE,
+ 	.name = "cascade",
+-	.flags = IRQF_SHARED,
++	.flags = IRQF_SHARED | IRQF_NODELAY,
+ };
+ 
+ void __init arch_init_irq(void)
+@@ -199,7 +200,8 @@ void __init arch_init_irq(void)
+ 	 * int-handler is not on bootstrap
+ 	 */
+ 	clear_c0_status(ST0_IM | ST0_BEV);
+-	local_irq_disable();
++	if (!irqs_disabled())
++		raw_local_irq_disable();
+ 	
+ 	/* setup cs5536 as high level */
+ 	BONITO_INTPOL  = (1 << 11 | 1 << 12);
+diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
+index 137c14b..e5e3028 100644
+--- a/arch/mips/mm/init.c
++++ b/arch/mips/mm/init.c
+@@ -61,7 +61,7 @@
+ 
+ #endif /* CONFIG_MIPS_MT_SMTC */
+ 
+-DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
++DEFINE_PER_CPU_LOCKED(struct mmu_gather, mmu_gathers);
+ 
+ /*
+  * We have up to 8 empty zeroed pages so we can map one of the right colour
+diff --git a/defconfig-fuloong-rt b/defconfig-fuloong-rt
+new file mode 100644
+index 0000000..becd80e
+--- /dev/null
++++ b/defconfig-fuloong-rt
+@@ -0,0 +1,1038 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.29.1-rt8
++# Sun Apr 19 15:47:09 2009
++#
++CONFIG_MIPS=y
++
++#
++# Machine selection
++#
++# CONFIG_MACH_ALCHEMY is not set
++# CONFIG_BASLER_EXCITE is not set
++# CONFIG_BCM47XX is not set
++# CONFIG_MIPS_COBALT is not set
++# CONFIG_MACH_DECSTATION is not set
++# CONFIG_MACH_JAZZ is not set
++# CONFIG_LASAT is not set
++# CONFIG_LEMOTE_FULONG is not set
++CONFIG_MACH_LM2F=y
++# CONFIG_MIPS_MALTA is not set
++# CONFIG_MIPS_SIM is not set
++# CONFIG_NEC_MARKEINS is not set
++# CONFIG_MACH_VR41XX is not set
++# CONFIG_NXP_STB220 is not set
++# CONFIG_NXP_STB225 is not set
++# CONFIG_PNX8550_JBS is not set
++# CONFIG_PNX8550_STB810 is not set
++# CONFIG_PMC_MSP is not set
++# CONFIG_PMC_YOSEMITE is not set
++# CONFIG_SGI_IP22 is not set
++# CONFIG_SGI_IP27 is not set
++# CONFIG_SGI_IP28 is not set
++# CONFIG_SGI_IP32 is not set
++# CONFIG_SIBYTE_CRHINE is not set
++# CONFIG_SIBYTE_CARMEL is not set
++# CONFIG_SIBYTE_CRHONE is not set
++# CONFIG_SIBYTE_RHONE is not set
++# CONFIG_SIBYTE_SWARM is not set
++# CONFIG_SIBYTE_LITTLESUR is not set
++# CONFIG_SIBYTE_SENTOSA is not set
++# CONFIG_SIBYTE_BIGSUR is not set
++# CONFIG_SNI_RM is not set
++# CONFIG_MACH_TX39XX is not set
++# CONFIG_MACH_TX49XX is not set
++# CONFIG_MIKROTIK_RB532 is not set
++# CONFIG_WR_PPMC is not set
++# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
++# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
++CONFIG_LEMOTE_FULONG2F=y
++# CONFIG_LEMOTE_2FNOTEBOOK is not set
++CONFIG_CS5536_RTC_BUG=y
++CONFIG_CS5536=y
++# CONFIG_LEMOTE_NAS is not set
++CONFIG_ARCH_SPARSEMEM_ENABLE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_ASM_SEMAPHORE=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_ARCH_SUPPORTS_OPROFILE=y
++CONFIG_GENERIC_FIND_NEXT_BIT=y
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_CLOCKEVENTS=y
++CONFIG_GENERIC_TIME=y
++CONFIG_GENERIC_CMOS_UPDATE=y
++CONFIG_SCHED_OMIT_FRAME_POINTER=y
++CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
++CONFIG_CEVT_R4K_LIB=y
++CONFIG_CEVT_R4K=y
++CONFIG_CSRC_R4K_LIB=y
++CONFIG_CSRC_R4K=y
++CONFIG_DMA_NONCOHERENT=y
++CONFIG_DMA_NEED_PCI_MAP_STATE=y
++CONFIG_EARLY_PRINTK=y
++CONFIG_SYS_HAS_EARLY_PRINTK=y
++# CONFIG_HOTPLUG_CPU is not set
++CONFIG_I8259=y
++# CONFIG_NO_IOPORT is not set
++CONFIG_GENERIC_ISA_DMA=y
++CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
++# CONFIG_CPU_BIG_ENDIAN is not set
++CONFIG_CPU_LITTLE_ENDIAN=y
++CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
++CONFIG_IRQ_CPU=y
++CONFIG_BOOT_ELF32=y
++CONFIG_MIPS_L1_CACHE_SHIFT=5
++CONFIG_HAVE_STD_PC_SERIAL_PORT=y
++
++#
++# CPU selection
++#
++CONFIG_CPU_LOONGSON2=y
++# CONFIG_CPU_MIPS32_R1 is not set
++# CONFIG_CPU_MIPS32_R2 is not set
++# CONFIG_CPU_MIPS64_R1 is not set
++# CONFIG_CPU_MIPS64_R2 is not set
++# CONFIG_CPU_R3000 is not set
++# CONFIG_CPU_TX39XX is not set
++# CONFIG_CPU_VR41XX is not set
++# CONFIG_CPU_R4300 is not set
++# CONFIG_CPU_R4X00 is not set
++# CONFIG_CPU_TX49XX is not set
++# CONFIG_CPU_R5000 is not set
++# CONFIG_CPU_R5432 is not set
++# CONFIG_CPU_R5500 is not set
++# CONFIG_CPU_R6000 is not set
++# CONFIG_CPU_NEVADA is not set
++# CONFIG_CPU_R8000 is not set
++# CONFIG_CPU_R10000 is not set
++# CONFIG_CPU_RM7000 is not set
++# CONFIG_CPU_RM9000 is not set
++# CONFIG_CPU_SB1 is not set
++# CONFIG_CPU_CAVIUM_OCTEON is not set
++CONFIG_SYS_HAS_CPU_LOONGSON2=y
++CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
++CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
++CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
++CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
++
++#
++# Kernel type
++#
++# CONFIG_32BIT is not set
++CONFIG_64BIT=y
++# CONFIG_PAGE_SIZE_4KB is not set
++# CONFIG_PAGE_SIZE_8KB is not set
++CONFIG_PAGE_SIZE_16KB=y
++# CONFIG_PAGE_SIZE_64KB is not set
++CONFIG_BOARD_SCACHE=y
++CONFIG_MIPS_MT_DISABLED=y
++# CONFIG_MIPS_MT_SMP is not set
++# CONFIG_MIPS_MT_SMTC is not set
++CONFIG_CPU_HAS_WB=y
++CONFIG_CPU_HAS_SYNC=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_CPU_SUPPORTS_HIGHMEM=y
++CONFIG_SYS_SUPPORTS_HIGHMEM=y
++CONFIG_ARCH_FLATMEM_ENABLE=y
++CONFIG_ARCH_POPULATES_NODE_MAP=y
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++CONFIG_SPARSEMEM_STATIC=y
++CONFIG_PAGEFLAGS_EXTENDED=y
++CONFIG_SPLIT_PTLOCK_CPUS=4
++CONFIG_PHYS_ADDR_T_64BIT=y
++CONFIG_ZONE_DMA_FLAG=0
++CONFIG_VIRT_TO_BUS=y
++CONFIG_UNEVICTABLE_LRU=y
++CONFIG_TICK_ONESHOT=y
++# CONFIG_NO_HZ is not set
++CONFIG_HIGH_RES_TIMERS=y
++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
++# CONFIG_HZ_48 is not set
++# CONFIG_HZ_100 is not set
++# CONFIG_HZ_128 is not set
++# CONFIG_HZ_250 is not set
++# CONFIG_HZ_256 is not set
++CONFIG_HZ_1000=y
++# CONFIG_HZ_1024 is not set
++CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
++CONFIG_HZ=1000
++# CONFIG_PREEMPT_NONE is not set
++# CONFIG_PREEMPT_VOLUNTARY is not set
++# CONFIG_PREEMPT_DESKTOP is not set
++CONFIG_PREEMPT_RT=y
++CONFIG_PREEMPT=y
++CONFIG_PREEMPT_SOFTIRQS=y
++CONFIG_PREEMPT_HARDIRQS=y
++# CONFIG_KEXEC is not set
++# CONFIG_SECCOMP is not set
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION="-fuloong2f"
++# CONFIG_LOCALVERSION_AUTO is not set
++# CONFIG_SWAP is not set
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++CONFIG_POSIX_MQUEUE=y
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++
++#
++# RCU Subsystem
++#
++# CONFIG_CLASSIC_RCU is not set
++# CONFIG_TREE_RCU is not set
++CONFIG_PREEMPT_RCU=y
++# CONFIG_RCU_TRACE is not set
++# CONFIG_TREE_RCU_TRACE is not set
++# CONFIG_PREEMPT_RCU_TRACE is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=15
++# CONFIG_GROUP_SCHED is not set
++# CONFIG_CGROUPS is not set
++# CONFIG_RELAY is not set
++# CONFIG_NAMESPACES is not set
++# CONFIG_BLK_DEV_INITRD is not set
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
++CONFIG_EMBEDDED=y
++# CONFIG_SYSCTL_SYSCALL is not set
++# CONFIG_KALLSYMS is not set
++# CONFIG_HOTPLUG is not set
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++# CONFIG_ELF_CORE is not set
++# CONFIG_PCSPKR_PLATFORM is not set
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++# CONFIG_SHMEM is not set
++CONFIG_AIO=y
++
++#
++# Performance Counters
++#
++# CONFIG_VM_EVENT_COUNTERS is not set
++CONFIG_PCI_QUIRKS=y
++CONFIG_COMPAT_BRK=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++CONFIG_HAVE_SYSCALL_WRAPPERS=y
++# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++CONFIG_BASE_SMALL=0
++# CONFIG_MODULES is not set
++CONFIG_BLOCK=y
++# CONFIG_BLK_DEV_BSG is not set
++# CONFIG_BLK_DEV_INTEGRITY is not set
++CONFIG_BLOCK_COMPAT=y
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++# CONFIG_IOSCHED_AS is not set
++CONFIG_IOSCHED_DEADLINE=y
++# CONFIG_IOSCHED_CFQ is not set
++# CONFIG_DEFAULT_AS is not set
++CONFIG_DEFAULT_DEADLINE=y
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="deadline"
++# CONFIG_FREEZER is not set
++
++#
++# Bus options (PCI, PCMCIA, EISA, ISA, TC)
++#
++CONFIG_HW_HAS_PCI=y
++CONFIG_PCI=y
++CONFIG_PCI_DOMAINS=y
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCI_LEGACY is not set
++# CONFIG_PCI_STUB is not set
++CONFIG_ISA=y
++CONFIG_MMU=y
++
++#
++# Executable file formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_HAVE_AOUT is not set
++# CONFIG_BINFMT_MISC is not set
++CONFIG_MIPS32_COMPAT=y
++CONFIG_COMPAT=y
++CONFIG_SYSVIPC_COMPAT=y
++CONFIG_MIPS32_O32=y
++CONFIG_MIPS32_N32=y
++CONFIG_BINFMT_ELF32=y
++
++#
++# Power management options
++#
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++# CONFIG_PM is not set
++
++#
++# CPU Frequency scaling
++#
++# CONFIG_CPU_FREQ is not set
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_COMPAT_NET_DEV_OPS=y
++CONFIG_PACKET=y
++# CONFIG_PACKET_MMAP is not set
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_NET_DSA is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++# CONFIG_DCB is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++# CONFIG_PHONET is not set
++# CONFIG_WIRELESS is not set
++# CONFIG_WIMAX is not set
++# CONFIG_RFKILL is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++# CONFIG_MTD is not set
++# CONFIG_PARPORT is not set
++# CONFIG_PNP is not set
++# CONFIG_BLK_DEV is not set
++# CONFIG_MISC_DEVICES is not set
++CONFIG_HAVE_IDE=y
++CONFIG_IDE=y
++
++#
++# Please see Documentation/ide/ide.txt for help/info on IDE drives
++#
++CONFIG_IDE_TIMINGS=y
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_IDE_GD=y
++CONFIG_IDE_GD_ATA=y
++# CONFIG_IDE_GD_ATAPI is not set
++# CONFIG_BLK_DEV_IDECD is not set
++# CONFIG_BLK_DEV_IDETAPE is not set
++CONFIG_IDE_TASK_IOCTL=y
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++# CONFIG_IDE_GENERIC is not set
++# CONFIG_BLK_DEV_PLATFORM is not set
++CONFIG_BLK_DEV_IDEDMA_SFF=y
++
++#
++# PCI IDE chipsets support
++#
++CONFIG_BLK_DEV_IDEPCI=y
++# CONFIG_IDEPCI_PCIBUS_ORDER is not set
++# CONFIG_BLK_DEV_OFFBOARD is not set
++CONFIG_BLK_DEV_GENERIC=y
++# CONFIG_BLK_DEV_OPTI621 is not set
++CONFIG_BLK_DEV_IDEDMA_PCI=y
++# CONFIG_BLK_DEV_AEC62XX is not set
++# CONFIG_BLK_DEV_ALI15X3 is not set
++CONFIG_BLK_DEV_AMD74XX=y
++# CONFIG_BLK_DEV_CMD64X is not set
++# CONFIG_BLK_DEV_TRIFLEX is not set
++# CONFIG_BLK_DEV_CS5520 is not set
++# CONFIG_BLK_DEV_CS5530 is not set
++# CONFIG_BLK_DEV_HPT366 is not set
++CONFIG_BLK_DEV_JMICRON=y
++# CONFIG_BLK_DEV_SC1200 is not set
++# CONFIG_BLK_DEV_PIIX is not set
++# CONFIG_BLK_DEV_IT8172 is not set
++# CONFIG_BLK_DEV_IT8213 is not set
++# CONFIG_BLK_DEV_IT821X is not set
++# CONFIG_BLK_DEV_NS87415 is not set
++# CONFIG_BLK_DEV_PDC202XX_OLD is not set
++# CONFIG_BLK_DEV_PDC202XX_NEW is not set
++# CONFIG_BLK_DEV_SVWKS is not set
++# CONFIG_BLK_DEV_SIIMAGE is not set
++# CONFIG_BLK_DEV_SLC90E66 is not set
++# CONFIG_BLK_DEV_TRM290 is not set
++# CONFIG_BLK_DEV_VIA82CXXX is not set
++# CONFIG_BLK_DEV_TC86C001 is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++CONFIG_BLK_DEV_IDEDMA=y
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++# CONFIG_FUSION is not set
++
++#
++# IEEE 1394 (FireWire) support
++#
++
++#
++# Enable only one of the two stacks, unless you know what you are doing
++#
++# CONFIG_FIREWIRE is not set
++# CONFIG_IEEE1394 is not set
++# CONFIG_I2O is not set
++CONFIG_NETDEVICES=y
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_NET_ETHERNET is not set
++CONFIG_MII=y
++CONFIG_NETDEV_1000=y
++# CONFIG_ACENIC is not set
++# CONFIG_DL2K is not set
++# CONFIG_E1000 is not set
++# CONFIG_E1000E is not set
++# CONFIG_IP1000 is not set
++# CONFIG_IGB is not set
++# CONFIG_NS83820 is not set
++# CONFIG_HAMACHI is not set
++# CONFIG_YELLOWFIN is not set
++CONFIG_R8169=y
++# CONFIG_SIS190 is not set
++# CONFIG_SKGE is not set
++# CONFIG_SKY2 is not set
++# CONFIG_VIA_VELOCITY is not set
++# CONFIG_TIGON3 is not set
++# CONFIG_BNX2 is not set
++# CONFIG_QLA3XXX is not set
++# CONFIG_ATL1 is not set
++# CONFIG_ATL1E is not set
++# CONFIG_ATL1C is not set
++# CONFIG_JME is not set
++# CONFIG_NETDEV_10000 is not set
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++# CONFIG_IWLWIFI_LEDS is not set
++
++#
++# Enable WiMAX (Networking options) to see the WiMAX drivers
++#
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_FDDI is not set
++# CONFIG_HIPPI is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++# CONFIG_PHONE is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++# CONFIG_INPUT_MOUSEDEV is not set
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_ELANTECH is not set
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_BCM5974 is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++# CONFIG_SERIO_I8042 is not set
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PCIPS2 is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_CONSOLE_TRANSLATIONS=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++# CONFIG_DEVKMEM is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_ISI is not set
++# CONFIG_SYNCLINKMP is not set
++# CONFIG_SYNCLINK_GT is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++# CONFIG_NOZOMI is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_PCI=y
++CONFIG_SERIAL_8250_NR_UARTS=16
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++# CONFIG_SERIAL_8250_EXTENDED is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++# CONFIG_SERIAL_JSM is not set
++CONFIG_UNIX98_PTYS=y
++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=16
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_RTC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_APPLICOM is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++# CONFIG_I2C is not set
++# CONFIG_SPI is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_THERMAL is not set
++# CONFIG_THERMAL_HWMON is not set
++# CONFIG_WATCHDOG is not set
++CONFIG_SSB_POSSIBLE=y
++
++#
++# Sonics Silicon Backplane
++#
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_CORE is not set
++# CONFIG_MFD_SM501 is not set
++# CONFIG_HTC_PASIC3 is not set
++# CONFIG_MFD_TMIO is not set
++# CONFIG_REGULATOR is not set
++
++#
++# Multimedia devices
++#
++
++#
++# Multimedia core support
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_VIDEO_MEDIA is not set
++
++#
++# Multimedia drivers
++#
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_DRM is not set
++CONFIG_VGASTATE=y
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_BOOT_VESA_SUPPORT=y
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++CONFIG_FB_SYS_FILLRECT=y
++CONFIG_FB_SYS_COPYAREA=y
++CONFIG_FB_SYS_IMAGEBLIT=y
++# CONFIG_FB_FOREIGN_ENDIAN is not set
++CONFIG_FB_SYS_FOPS=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++CONFIG_FB_TILEBLITTING=y
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_CIRRUS is not set
++# CONFIG_FB_PM2 is not set
++# CONFIG_FB_CYBER2000 is not set
++# CONFIG_FB_ASILIANT is not set
++# CONFIG_FB_IMSTT is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_NVIDIA is not set
++CONFIG_FB_RIVA=y
++# CONFIG_FB_RIVA_I2C is not set
++# CONFIG_FB_RIVA_DEBUG is not set
++# CONFIG_FB_RIVA_BACKLIGHT is not set
++# CONFIG_FB_MATROX is not set
++# CONFIG_FB_RADEON is not set
++# CONFIG_FB_ATY128 is not set
++# CONFIG_FB_ATY is not set
++# CONFIG_FB_S3 is not set
++# CONFIG_FB_SAVAGE is not set
++CONFIG_FB_SIS=y
++CONFIG_FB_SIS_300=y
++CONFIG_FB_SIS_315=y
++# CONFIG_FB_VIA is not set
++# CONFIG_FB_NEOMAGIC is not set
++# CONFIG_FB_KYRO is not set
++# CONFIG_FB_3DFX is not set
++# CONFIG_FB_VOODOO1 is not set
++# CONFIG_FB_VT8623 is not set
++# CONFIG_FB_TRIDENT is not set
++# CONFIG_FB_ARK is not set
++# CONFIG_FB_PM3 is not set
++# CONFIG_FB_CARMINE is not set
++# CONFIG_FB_SILICONMOTION is not set
++CONFIG_FB_VIRTUAL=y
++# CONFIG_FB_METRONOME is not set
++# CONFIG_FB_MB862XX is not set
++CONFIG_BACKLIGHT_LCD_SUPPORT=y
++# CONFIG_LCD_CLASS_DEVICE is not set
++CONFIG_BACKLIGHT_CLASS_DEVICE=y
++CONFIG_BACKLIGHT_GENERIC=y
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++# CONFIG_LOGO is not set
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_HID_PID is not set
++# CONFIG_USB_HIDDEV is not set
++
++#
++# Special HID drivers
++#
++CONFIG_HID_COMPAT=y
++# CONFIG_HID_A4TECH is not set
++# CONFIG_HID_APPLE is not set
++# CONFIG_HID_BELKIN is not set
++# CONFIG_HID_CHERRY is not set
++# CONFIG_HID_CHICONY is not set
++# CONFIG_HID_CYPRESS is not set
++# CONFIG_HID_EZKEY is not set
++# CONFIG_HID_GYRATION is not set
++# CONFIG_HID_LOGITECH is not set
++# CONFIG_HID_MICROSOFT is not set
++# CONFIG_HID_MONTEREY is not set
++# CONFIG_HID_NTRIG is not set
++# CONFIG_HID_PANTHERLORD is not set
++# CONFIG_HID_PETALYNX is not set
++# CONFIG_HID_SAMSUNG is not set
++# CONFIG_HID_SONY is not set
++# CONFIG_HID_SUNPLUS is not set
++# CONFIG_GREENASIA_FF is not set
++# CONFIG_HID_TOPSEED is not set
++# CONFIG_THRUSTMASTER_FF is not set
++# CONFIG_ZEROPLUS_FF is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++CONFIG_USB_ARCH_HAS_EHCI=y
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++# CONFIG_USB_OTG_WHITELIST is not set
++# CONFIG_USB_OTG_BLACKLIST_HUB is not set
++# CONFIG_USB_MON is not set
++# CONFIG_USB_WUSB is not set
++# CONFIG_USB_WUSB_CBAF is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_C67X00_HCD is not set
++CONFIG_USB_EHCI_HCD=y
++CONFIG_USB_EHCI_ROOT_HUB_TT=y
++# CONFIG_USB_EHCI_TT_NEWSCHED is not set
++# CONFIG_USB_OXU210HP_HCD is not set
++# CONFIG_USB_ISP116X_HCD is not set
++# CONFIG_USB_ISP1760_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_UHCI_HCD is not set
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++# CONFIG_USB_HWA_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++# CONFIG_USB_WDM is not set
++# CONFIG_USB_TMC is not set
++
++#
++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
++#
++
++#
++# see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++
++#
++# USB port drivers
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_SEVSEG is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_SISUSBVGA is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++# CONFIG_USB_ISIGHTFW is not set
++# CONFIG_USB_VST is not set
++
++#
++# OTG and related infrastructure
++#
++# CONFIG_UWB is not set
++# CONFIG_MMC is not set
++# CONFIG_MEMSTICK is not set
++# CONFIG_NEW_LEDS is not set
++# CONFIG_ACCESSIBILITY is not set
++# CONFIG_RTC_CLASS is not set
++# CONFIG_DMADEVICES is not set
++# CONFIG_UIO is not set
++# CONFIG_STAGING is not set
++
++#
++# File systems
++#
++# CONFIG_EXT2_FS is not set
++CONFIG_EXT3_FS=y
++# CONFIG_EXT3_FS_XATTR is not set
++# CONFIG_EXT4_FS is not set
++CONFIG_JBD=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++CONFIG_FILE_LOCKING=y
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_BTRFS_FS is not set
++# CONFIG_DNOTIFY is not set
++# CONFIG_INOTIFY is not set
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++# CONFIG_MSDOS_FS is not set
++# CONFIG_VFAT_FS is not set
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_KCORE=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_PROC_PAGE_MONITOR=y
++# CONFIG_SYSFS is not set
++# CONFIG_TMPFS is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_MISC_FILESYSTEMS is not set
++# CONFIG_NETWORK_FILESYSTEMS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++# CONFIG_NLS is not set
++
++#
++# Kernel hacking
++#
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ALLOW_WARNINGS=y
++# CONFIG_ENABLE_WARN_DEPRECATED is not set
++# CONFIG_ENABLE_MUST_CHECK is not set
++CONFIG_FRAME_WARN=1024
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_DEBUG_SECTION_MISMATCH is not set
++# CONFIG_DEBUG_KERNEL is not set
++# CONFIG_DEBUG_MEMORY_INIT is not set
++CONFIG_TRACING_SUPPORT=y
++
++#
++# Tracers
++#
++# CONFIG_IRQSOFF_TRACER is not set
++# CONFIG_PREEMPT_TRACER is not set
++# CONFIG_SCHED_TRACER is not set
++# CONFIG_CONTEXT_SWITCH_TRACER is not set
++# CONFIG_EVENT_TRACER is not set
++# CONFIG_BOOT_TRACER is not set
++# CONFIG_TRACE_BRANCH_PROFILING is not set
++# CONFIG_KMEMTRACE is not set
++# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
++# CONFIG_SAMPLES is not set
++CONFIG_HAVE_ARCH_KGDB=y
++CONFIG_CMDLINE=""
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITYFS is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++# CONFIG_BINARY_PRINTF is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++CONFIG_GENERIC_FIND_LAST_BIT=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_T10DIF is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_IOPORT=y
++CONFIG_HAS_DMA=y
+diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c
+index d6a30ce..cfff67a 100644
+--- a/drivers/input/misc/pcspkr.c
++++ b/drivers/input/misc/pcspkr.c
+@@ -29,7 +29,7 @@ MODULE_ALIAS("platform:pcspkr");
+ #include <asm/i8253.h>
+ #else
+ #include <asm/8253pit.h>
+-static DEFINE_SPINLOCK(i8253_lock);
++static DEFINE_RAW_SPINLOCK(i8253_lock);
+ #endif
+ 
+ static int pcspkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
+diff --git a/kernel/sched.c b/kernel/sched.c
+index 61fddc9..4b2c522 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -963,7 +963,7 @@ static inline u64 global_rt_runtime(void)
+ #ifndef prepare_arch_switch
+ # define prepare_arch_switch(next)	do { } while (0)
+ #endif
+-#ifndef finish_arch_switch
++#ifndef _finish_arch_switch
+ # define _finish_arch_switch(prev)	do { } while (0)
+ #endif
+ 
+diff --git a/sound/drivers/pcsp/pcsp.h b/sound/drivers/pcsp/pcsp.h
+index cdef266..39dddc2 100644
+--- a/sound/drivers/pcsp/pcsp.h
++++ b/sound/drivers/pcsp/pcsp.h
+@@ -15,7 +15,7 @@
+ #include <asm/i8253.h>
+ #else
+ #include <asm/8253pit.h>
+-static DEFINE_SPINLOCK(i8253_lock);
++static DEFINE_RAW_SPINLOCK(i8253_lock);
+ #endif
+ 
+ #define PCSP_SOUND_VERSION 0x400	/* read 4.00 */
diff --git a/a/content_digest b/N1/content_digest
index 3ae5f5d..31ed84a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -20,6 +20,2111 @@
  " linux-rt-users@vger.kernel.org\0"
  "\00:1\0"
  "b\0"
- On Mon, Apr 20, 2009 at 10:22:03PM +0800, Wu Zhangjin wrote:
+ "On Mon, Apr 20, 2009 at 10:22:03PM +0800, Wu Zhangjin wrote:\n"
+ "\n"
+ ">From e67f78d663a84ef93aa12c3c8c1adf3033c4f9a1 Mon Sep 17 00:00:00 2001\n"
+ "From: Wu Zhangjin <wuzj@lemote.com>\n"
+ "Date: Sun, 19 Apr 2009 15:57:41 +0800\n"
+ "Subject: [PATCH] basic RT_PREEMPT support for mips/loongson2f\n"
+ "\n"
+ "This job is based on patch-2.6.24.7-rt27.bz2 & patch-2.6.26.8-rt16.bz2\n"
+ "from http://www.kernel.org/pub/linux/kernel/projects/rt/\n"
+ "\n"
+ "diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig\n"
+ "index 4401055..708fcc0 100644\n"
+ "--- a/arch/mips/Kconfig\n"
+ "+++ b/arch/mips/Kconfig\n"
+ "@@ -663,6 +663,10 @@ config RWSEM_GENERIC_SPINLOCK\n"
+ " config RWSEM_XCHGADD_ALGORITHM\n"
+ " \tbool\n"
+ " \n"
+ "+config ASM_SEMAPHORE\n"
+ "+\tbool\n"
+ "+\tdefault y\n"
+ "+\n"
+ "\n"
+ "This config symbol is not being referenced anywhere in the tree.\n"
+ "\n"
+ " config ARCH_HAS_ILOG2_U32\n"
+ " \tbool\n"
+ " \tdefault n\n"
+ "diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h\n"
+ "index 6c8342a..d3cc457 100644\n"
+ "--- a/arch/mips/include/asm/asmmacro.h\n"
+ "+++ b/arch/mips/include/asm/asmmacro.h\n"
+ "@@ -21,7 +21,7 @@\n"
+ " #endif\n"
+ " \n"
+ " #ifdef CONFIG_MIPS_MT_SMTC\n"
+ "-\t.macro\tlocal_irq_enable reg=t0\n"
+ "+\t.macro\traw_local_irq_enable reg=t0\n"
+ "\n"
+ "Renaming this function and the others seems like a good cleanup but please\n"
+ "break such cleanup out and submit them separatly.\n"
+ "\n"
+ " \tmfc0\t\\reg, CP0_TCSTATUS\n"
+ " \tori\t\\reg, \\reg, TCSTATUS_IXMT\n"
+ " \txori\t\\reg, \\reg, TCSTATUS_IXMT\n"
+ "@@ -29,31 +29,31 @@\n"
+ " \t_ehb\n"
+ " \t.endm\n"
+ " \n"
+ "-\t.macro\tlocal_irq_disable reg=t0\n"
+ "+\t.macro\traw_local_irq_disable reg=t0\n"
+ " \tmfc0\t\\reg, CP0_TCSTATUS\n"
+ " \tori\t\\reg, \\reg, TCSTATUS_IXMT\n"
+ " \tmtc0\t\\reg, CP0_TCSTATUS\n"
+ " \t_ehb\n"
+ " \t.endm\n"
+ " #elif defined(CONFIG_CPU_MIPSR2)\n"
+ "-\t.macro\tlocal_irq_enable reg=t0\n"
+ "+\t.macro\traw_local_irq_enable reg=t0\n"
+ " \tei\n"
+ " \tirq_enable_hazard\n"
+ " \t.endm\n"
+ " \n"
+ "-\t.macro\tlocal_irq_disable reg=t0\n"
+ "+\t.macro\traw_local_irq_disable reg=t0\n"
+ " \tdi\n"
+ " \tirq_disable_hazard\n"
+ " \t.endm\n"
+ " #else\n"
+ "-\t.macro\tlocal_irq_enable reg=t0\n"
+ "+\t.macro\traw_local_irq_enable reg=t0\n"
+ " \tmfc0\t\\reg, CP0_STATUS\n"
+ " \tori\t\\reg, \\reg, 1\n"
+ " \tmtc0\t\\reg, CP0_STATUS\n"
+ " \tirq_enable_hazard\n"
+ " \t.endm\n"
+ " \n"
+ "-\t.macro\tlocal_irq_disable reg=t0\n"
+ "+\t.macro\traw_local_irq_disable reg=t0\n"
+ " \tmfc0\t\\reg, CP0_STATUS\n"
+ " \tori\t\\reg, \\reg, 1\n"
+ " \txori\t\\reg, \\reg, 1\n"
+ "diff --git a/arch/mips/include/asm/i8253.h b/arch/mips/include/asm/i8253.h\n"
+ "index 5dabc87..7891111 100644\n"
+ "--- a/arch/mips/include/asm/i8253.h\n"
+ "+++ b/arch/mips/include/asm/i8253.h\n"
+ "@@ -14,7 +14,7 @@\n"
+ " \n"
+ " #define PIT_TICK_RATE\t\t1193182UL\n"
+ " \n"
+ "-extern spinlock_t i8253_lock;\n"
+ "+extern raw_spinlock_t i8253_lock;\n"
+ " \n"
+ " extern void setup_pit_timer(void);\n"
+ " \n"
+ "diff --git a/arch/mips/include/asm/i8259.h b/arch/mips/include/asm/i8259.h\n"
+ "index 8572a2d..acafca9 100644\n"
+ "--- a/arch/mips/include/asm/i8259.h\n"
+ "+++ b/arch/mips/include/asm/i8259.h\n"
+ "@@ -35,7 +35,7 @@\n"
+ " #define SLAVE_ICW4_DEFAULT\t0x01\n"
+ " #define PIC_ICW4_AEOI\t\t2\n"
+ " \n"
+ "-extern spinlock_t i8259A_lock;\n"
+ "+extern raw_spinlock_t i8259A_lock;\n"
+ " \n"
+ " extern int i8259A_irq_pending(unsigned int irq);\n"
+ " extern void make_8259A_irq(unsigned int irq);\n"
+ "diff --git a/arch/mips/include/asm/kdebug.h b/arch/mips/include/asm/kdebug.h\n"
+ "index 5bf62aa..3edbe56 100644\n"
+ "--- a/arch/mips/include/asm/kdebug.h\n"
+ "+++ b/arch/mips/include/asm/kdebug.h\n"
+ "@@ -8,6 +8,7 @@ enum die_val {\n"
+ " \tDIE_FP,\n"
+ " \tDIE_TRAP,\n"
+ " \tDIE_RI,\n"
+ "+\tDIE_NMI_IPI,\n"
+ " };\n"
+ " \n"
+ " #endif /* _ASM_MIPS_KDEBUG_H */\n"
+ "\n"
+ "This patch only defines DIE_NMI_IPI but the only user is a x86-only\n"
+ "watchdog driver.  Drop?\n"
+ "\n"
+ "diff --git a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h\n"
+ "index 01d08d6..1cb4aa3 100644\n"
+ "--- a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h\n"
+ "+++ b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h\n"
+ "@@ -17,6 +17,9 @@\n"
+ " #ifndef __ASM_LEMOTE_CPU_FEATURE_OVERRIDES_H\n"
+ " #define __ASM_LEMOTE_CPU_FEATURE_OVERRIDES_H\n"
+ " \n"
+ "+/* for RT_PREEMPT */\n"
+ "+#define finish_arch_switch_empty\n"
+ "+\n"
+ "\n"
+ "The whole finish_arch_switch_empty thing looks broken.  Drop it.\n"
+ "\n"
+ " #define cpu_has_llsc 1\n"
+ " \n"
+ " #define cpu_has_tlb\t\t1\n"
+ "diff --git a/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h b/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h\n"
+ "index 275eaf9..f703cc3 100644\n"
+ "--- a/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h\n"
+ "+++ b/arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h\n"
+ "@@ -1,6 +1,8 @@\n"
+ " #ifndef __ASM_MACH_TX49XX_CPU_FEATURE_OVERRIDES_H\n"
+ " #define __ASM_MACH_TX49XX_CPU_FEATURE_OVERRIDES_H\n"
+ " \n"
+ "+#define finish_arch_switch_empty\n"
+ "+\n"
+ " #define cpu_has_llsc\t1\n"
+ " #define cpu_has_64bits\t1\n"
+ " #define cpu_has_inclusive_pcaches\t0\n"
+ "diff --git a/arch/mips/include/asm/rwsem.h b/arch/mips/include/asm/rwsem.h\n"
+ "new file mode 100644\n"
+ "index 0000000..4e57263\n"
+ "--- /dev/null\n"
+ "+++ b/arch/mips/include/asm/rwsem.h\n"
+ "\n"
+ "Your tree always defines RWSEM_GENERIC_SPINLOCK, so this file will never\n"
+ "be included, not even when building a non-RT kernel.\n"
+ "\n"
+ "@@ -0,0 +1,176 @@\n"
+ "+/*\n"
+ "+ * include/asm-mips/rwsem.h: R/W semaphores for MIPS using the stuff\n"
+ "+ * in lib/rwsem.c.  Adapted largely from include/asm-ppc/rwsem.h\n"
+ "+ * by john.cooper@timesys.com\n"
+ "+ */\n"
+ "+\n"
+ "+#ifndef _MIPS_RWSEM_H\n"
+ "+#define _MIPS_RWSEM_H\n"
+ "+\n"
+ "+#ifndef _LINUX_RWSEM_H\n"
+ "+#error \"please don't include asm/rwsem.h directly, use linux/rwsem.h instead\"\n"
+ "+#endif\n"
+ "+\n"
+ "+#ifdef __KERNEL__\n"
+ "+#include <linux/list.h>\n"
+ "+#include <linux/spinlock.h>\n"
+ "+#include <asm/atomic.h>\n"
+ "+#include <asm/system.h>\n"
+ "+\n"
+ "+/*\n"
+ "+ * the semaphore definition\n"
+ "+ */\n"
+ "+struct compat_rw_semaphore {\n"
+ "+\t/* XXX this should be able to be an atomic_t  -- paulus */\n"
+ "+\tsigned long\t\tcount;\n"
+ "+#define RWSEM_UNLOCKED_VALUE\t\t0x00000000\n"
+ "+#define RWSEM_ACTIVE_BIAS\t\t0x00000001\n"
+ "+#define RWSEM_ACTIVE_MASK\t\t0x0000ffff\n"
+ "+#define RWSEM_WAITING_BIAS\t\t(-0x00010000)\n"
+ "+#define RWSEM_ACTIVE_READ_BIAS\t\tRWSEM_ACTIVE_BIAS\n"
+ "+#define RWSEM_ACTIVE_WRITE_BIAS\t\t(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)\n"
+ "+\traw_spinlock_t\t\twait_lock;\n"
+ "+\tstruct list_head\twait_list;\n"
+ "+#if RWSEM_DEBUG\n"
+ "+\tint\t\t\tdebug;\n"
+ "+#endif\n"
+ "+};\n"
+ "+\n"
+ "+/*\n"
+ "+ * initialisation\n"
+ "+ */\n"
+ "+#if RWSEM_DEBUG\n"
+ "+#define __RWSEM_DEBUG_INIT      , 0\n"
+ "+#else\n"
+ "+#define __RWSEM_DEBUG_INIT\t/* */\n"
+ "+#endif\n"
+ "+\n"
+ "+#define __COMPAT_RWSEM_INITIALIZER(name) \\\n"
+ "+\t{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, \\\n"
+ "+\t  LIST_HEAD_INIT((name).wait_list) \\\n"
+ "+\t  __RWSEM_DEBUG_INIT }\n"
+ "+\n"
+ "+#define COMPAT_DECLARE_RWSEM(name)\t\t\\\n"
+ "+\tstruct compat_rw_semaphore name = __COMPAT_RWSEM_INITIALIZER(name)\n"
+ "+\n"
+ "+extern struct compat_rw_semaphore *rwsem_down_read_failed(struct compat_rw_semaphore *sem);\n"
+ "+extern struct compat_rw_semaphore *rwsem_down_write_failed(struct compat_rw_semaphore *sem);\n"
+ "+extern struct compat_rw_semaphore *rwsem_wake(struct compat_rw_semaphore *sem);\n"
+ "+extern struct compat_rw_semaphore *rwsem_downgrade_wake(struct compat_rw_semaphore *sem);\n"
+ "+\n"
+ "+static inline void compat_init_rwsem(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tsem->count = RWSEM_UNLOCKED_VALUE;\n"
+ "+\tspin_lock_init(&sem->wait_lock);\n"
+ "+\tINIT_LIST_HEAD(&sem->wait_list);\n"
+ "+#if RWSEM_DEBUG\n"
+ "+\tsem->debug = 0;\n"
+ "+#endif\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * lock for reading\n"
+ "+ */\n"
+ "+static inline void __down_read(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tif (atomic_inc_return((atomic_t *)(&sem->count)) > 0)\n"
+ "+\t\tsmp_wmb();\n"
+ "+\telse\n"
+ "+\t\trwsem_down_read_failed(sem);\n"
+ "+}\n"
+ "+\n"
+ "+static inline int __down_read_trylock(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tint tmp;\n"
+ "+\n"
+ "+\twhile ((tmp = sem->count) >= 0) {\n"
+ "+\t\tif (tmp == cmpxchg(&sem->count, tmp,\n"
+ "+\t\t\t\t   tmp + RWSEM_ACTIVE_READ_BIAS)) {\n"
+ "+\t\t\tsmp_wmb();\n"
+ "+\t\t\treturn 1;\n"
+ "+\t\t}\n"
+ "+\t}\n"
+ "+\treturn 0;\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * lock for writing\n"
+ "+ */\n"
+ "+static inline void __down_write(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tint tmp;\n"
+ "+\n"
+ "+\ttmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,\n"
+ "+\t\t\t\t(atomic_t *)(&sem->count));\n"
+ "+\tif (tmp == RWSEM_ACTIVE_WRITE_BIAS)\n"
+ "+\t\tsmp_wmb();\n"
+ "+\telse\n"
+ "+\t\trwsem_down_write_failed(sem);\n"
+ "+}\n"
+ "+\n"
+ "+static inline int __down_write_trylock(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tint tmp;\n"
+ "+\n"
+ "+\ttmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,\n"
+ "+\t\t      RWSEM_ACTIVE_WRITE_BIAS);\n"
+ "+\tsmp_wmb();\n"
+ "+\treturn tmp == RWSEM_UNLOCKED_VALUE;\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * unlock after reading\n"
+ "+ */\n"
+ "+static inline void __up_read(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tint tmp;\n"
+ "+\n"
+ "+\tsmp_wmb();\n"
+ "+\ttmp = atomic_dec_return((atomic_t *)(&sem->count));\n"
+ "+\tif (tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0)\n"
+ "+\t\trwsem_wake(sem);\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * unlock after writing\n"
+ "+ */\n"
+ "+static inline void __up_write(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tsmp_wmb();\n"
+ "+\tif (atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,\n"
+ "+\t\t\t      (atomic_t *)(&sem->count)) < 0)\n"
+ "+\t\trwsem_wake(sem);\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * implement atomic add functionality\n"
+ "+ */\n"
+ "+static inline void rwsem_atomic_add(int delta, struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tatomic_add(delta, (atomic_t *)(&sem->count));\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * downgrade write lock to read lock\n"
+ "+ */\n"
+ "+static inline void __downgrade_write(struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tint tmp;\n"
+ "+\n"
+ "+\tsmp_wmb();\n"
+ "+\ttmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));\n"
+ "+\tif (tmp < 0)\n"
+ "+\t\trwsem_downgrade_wake(sem);\n"
+ "+}\n"
+ "+\n"
+ "+/*\n"
+ "+ * implement exchange and add functionality\n"
+ "+ */\n"
+ "+static inline int rwsem_atomic_update(int delta, struct compat_rw_semaphore *sem)\n"
+ "+{\n"
+ "+\tsmp_mb();\n"
+ "+\treturn atomic_add_return(delta, (atomic_t *)(&sem->count));\n"
+ "+}\n"
+ "+\n"
+ "+#endif /* __KERNEL__ */\n"
+ "+#endif /* _MIPS_RWSEM_H */\n"
+ "diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h\n"
+ "index 0884947..6415b94 100644\n"
+ "--- a/arch/mips/include/asm/spinlock.h\n"
+ "+++ b/arch/mips/include/asm/spinlock.h\n"
+ "@@ -34,7 +34,7 @@\n"
+ "  * becomes equal to the the initial value of the tail.\n"
+ "  */\n"
+ " \n"
+ "-static inline int __raw_spin_is_locked(raw_spinlock_t *lock)\n"
+ "+static inline int __raw_spin_is_locked(__raw_spinlock_t *lock)\n"
+ " {\n"
+ " \tunsigned int counters = ACCESS_ONCE(lock->lock);\n"
+ " \n"
+ "@@ -45,7 +45,7 @@ static inline int __raw_spin_is_locked(raw_spinlock_t *lock)\n"
+ " #define __raw_spin_unlock_wait(x) \\\n"
+ " \twhile (__raw_spin_is_locked(x)) { cpu_relax(); }\n"
+ " \n"
+ "-static inline int __raw_spin_is_contended(raw_spinlock_t *lock)\n"
+ "+static inline int __raw_spin_is_contended(__raw_spinlock_t *lock)\n"
+ " {\n"
+ " \tunsigned int counters = ACCESS_ONCE(lock->lock);\n"
+ " \n"
+ "@@ -53,7 +53,7 @@ static inline int __raw_spin_is_contended(raw_spinlock_t *lock)\n"
+ " }\n"
+ " #define __raw_spin_is_contended\t__raw_spin_is_contended\n"
+ " \n"
+ "-static inline void __raw_spin_lock(raw_spinlock_t *lock)\n"
+ "+static inline void __raw_spin_lock(__raw_spinlock_t *lock)\n"
+ " {\n"
+ " \tint my_ticket;\n"
+ " \tint tmp;\n"
+ "@@ -134,7 +134,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)\n"
+ " \tsmp_llsc_mb();\n"
+ " }\n"
+ " \n"
+ "-static inline void __raw_spin_unlock(raw_spinlock_t *lock)\n"
+ "+static inline void __raw_spin_unlock(__raw_spinlock_t *lock)\n"
+ " {\n"
+ " \tint tmp;\n"
+ " \n"
+ "@@ -174,7 +174,7 @@ static inline void __raw_spin_unlock(raw_spinlock_t *lock)\n"
+ " \t}\n"
+ " }\n"
+ " \n"
+ "-static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)\n"
+ "+static inline unsigned int __raw_spin_trylock(__raw_spinlock_t *lock)\n"
+ " {\n"
+ " \tint tmp, tmp2, tmp3;\n"
+ " \n"
+ "@@ -256,7 +256,7 @@ static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)\n"
+ "  */\n"
+ " #define __raw_write_can_lock(rw)\t(!(rw)->lock)\n"
+ " \n"
+ "-static inline void __raw_read_lock(raw_rwlock_t *rw)\n"
+ "+static inline void __raw_read_lock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tunsigned int tmp;\n"
+ " \n"
+ "@@ -301,7 +301,7 @@ static inline void __raw_read_lock(raw_rwlock_t *rw)\n"
+ " /* Note the use of sub, not subu which will make the kernel die with an\n"
+ "    overflow exception if we ever try to unlock an rwlock that is already\n"
+ "    unlocked or is being held by a writer.  */\n"
+ "-static inline void __raw_read_unlock(raw_rwlock_t *rw)\n"
+ "+static inline void __raw_read_unlock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tunsigned int tmp;\n"
+ " \n"
+ "@@ -335,7 +335,7 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw)\n"
+ " \t}\n"
+ " }\n"
+ " \n"
+ "-static inline void __raw_write_lock(raw_rwlock_t *rw)\n"
+ "+static inline void __raw_write_lock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tunsigned int tmp;\n"
+ " \n"
+ "@@ -377,7 +377,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)\n"
+ " \tsmp_llsc_mb();\n"
+ " }\n"
+ " \n"
+ "-static inline void __raw_write_unlock(raw_rwlock_t *rw)\n"
+ "+static inline void __raw_write_unlock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tsmp_mb();\n"
+ " \n"
+ "@@ -389,7 +389,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)\n"
+ " \t: \"memory\");\n"
+ " }\n"
+ " \n"
+ "-static inline int __raw_read_trylock(raw_rwlock_t *rw)\n"
+ "+static inline int __raw_read_trylock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tunsigned int tmp;\n"
+ " \tint ret;\n"
+ "@@ -433,7 +433,7 @@ static inline int __raw_read_trylock(raw_rwlock_t *rw)\n"
+ " \treturn ret;\n"
+ " }\n"
+ " \n"
+ "-static inline int __raw_write_trylock(raw_rwlock_t *rw)\n"
+ "+static inline int __raw_write_trylock(__raw_rwlock_t *rw)\n"
+ " {\n"
+ " \tunsigned int tmp;\n"
+ " \tint ret;\n"
+ "diff --git a/arch/mips/include/asm/spinlock_types.h b/arch/mips/include/asm/spinlock_types.h\n"
+ "index adeedaa..afdda81 100644\n"
+ "--- a/arch/mips/include/asm/spinlock_types.h\n"
+ "+++ b/arch/mips/include/asm/spinlock_types.h\n"
+ "@@ -12,13 +12,13 @@ typedef struct {\n"
+ " \t * bits 15..28: ticket\n"
+ " \t */\n"
+ " \tunsigned int lock;\n"
+ "-} raw_spinlock_t;\n"
+ "+} __raw_spinlock_t;\n"
+ " \n"
+ " #define __RAW_SPIN_LOCK_UNLOCKED\t{ 0 }\n"
+ " \n"
+ " typedef struct {\n"
+ " \tvolatile unsigned int lock;\n"
+ "-} raw_rwlock_t;\n"
+ "+} __raw_rwlock_t;\n"
+ " \n"
+ " #define __RAW_RW_LOCK_UNLOCKED\t\t{ 0 }\n"
+ " \n"
+ "diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h\n"
+ "index cd30f83..4fc1ea2 100644\n"
+ "--- a/arch/mips/include/asm/system.h\n"
+ "+++ b/arch/mips/include/asm/system.h\n"
+ "@@ -71,6 +71,9 @@ do {\t\t\t\t\t\t\t\t\t\\\n"
+ " \t(last) = resume(prev, next, task_thread_info(next));\t\t\\\n"
+ " } while (0)\n"
+ " \n"
+ "+\n"
+ "+/* preempt kernel barfs in kernel/sched.c ifdef finish_arch_switch */\n"
+ "+#ifndef finish_arch_switch_empty\n"
+ " #define finish_arch_switch(prev)\t\t\t\t\t\\\n"
+ " do {\t\t\t\t\t\t\t\t\t\\\n"
+ " \tif (cpu_has_dsp)\t\t\t\t\t\t\\\n"
+ "@@ -79,6 +82,7 @@ do {\t\t\t\t\t\t\t\t\t\\\n"
+ " \t\twrite_c0_userlocal(current_thread_info()->tp_value);\t\\\n"
+ " \t__restore_watch();\t\t\t\t\t\t\\\n"
+ " } while (0)\n"
+ "+#endif\n"
+ " \n"
+ " static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)\n"
+ " {\n"
+ "diff --git a/arch/mips/include/asm/timeofday.h b/arch/mips/include/asm/timeofday.h\n"
+ "new file mode 100644\n"
+ "index 0000000..33dda85\n"
+ "--- /dev/null\n"
+ "+++ b/arch/mips/include/asm/timeofday.h\n"
+ "@@ -0,0 +1,5 @@\n"
+ "+#ifndef _ASM_MIPS_TIMEOFDAY_H\n"
+ "+#define _ASM_MIPS_TIMEOFDAY_H\n"
+ "+#include <asm-generic/timeofday.h>\n"
+ "+#endif\n"
+ "+\n"
+ "diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h\n"
+ "index 09ff5bb..60149c6 100644\n"
+ "--- a/arch/mips/include/asm/uaccess.h\n"
+ "+++ b/arch/mips/include/asm/uaccess.h\n"
+ "@@ -696,7 +696,6 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);\n"
+ " \tconst void *__cu_from;\t\t\t\t\t\t\\\n"
+ " \tlong __cu_len;\t\t\t\t\t\t\t\\\n"
+ " \t\t\t\t\t\t\t\t\t\\\n"
+ "-\tmight_sleep();\t\t\t\t\t\t\t\\\n"
+ " \t__cu_to = (to);\t\t\t\t\t\t\t\\\n"
+ " \t__cu_from = (from);\t\t\t\t\t\t\\\n"
+ " \t__cu_len = (n);\t\t\t\t\t\t\t\\\n"
+ "@@ -752,7 +751,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);\n"
+ " \tconst void *__cu_from;\t\t\t\t\t\t\\\n"
+ " \tlong __cu_len;\t\t\t\t\t\t\t\\\n"
+ " \t\t\t\t\t\t\t\t\t\\\n"
+ "-\tmight_sleep();\t\t\t\t\t\t\t\\\n"
+ " \t__cu_to = (to);\t\t\t\t\t\t\t\\\n"
+ " \t__cu_from = (from);\t\t\t\t\t\t\\\n"
+ " \t__cu_len = (n);\t\t\t\t\t\t\t\\\n"
+ "@@ -831,7 +829,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);\n"
+ " \tconst void __user *__cu_from;\t\t\t\t\t\\\n"
+ " \tlong __cu_len;\t\t\t\t\t\t\t\\\n"
+ " \t\t\t\t\t\t\t\t\t\\\n"
+ "-\tmight_sleep();\t\t\t\t\t\t\t\\\n"
+ " \t__cu_to = (to);\t\t\t\t\t\t\t\\\n"
+ " \t__cu_from = (from);\t\t\t\t\t\t\\\n"
+ " \t__cu_len = (n);\t\t\t\t\t\t\t\\\n"
+ "@@ -862,7 +859,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);\n"
+ " \tconst void __user *__cu_from;\t\t\t\t\t\\\n"
+ " \tlong __cu_len;\t\t\t\t\t\t\t\\\n"
+ " \t\t\t\t\t\t\t\t\t\\\n"
+ "-\tmight_sleep();\t\t\t\t\t\t\t\\\n"
+ " \t__cu_to = (to);\t\t\t\t\t\t\t\\\n"
+ " \t__cu_from = (from);\t\t\t\t\t\t\\\n"
+ " \t__cu_len = (n);\t\t\t\t\t\t\t\\\n"
+ "@@ -880,7 +876,6 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);\n"
+ " \tconst void __user *__cu_from;\t\t\t\t\t\\\n"
+ " \tlong __cu_len;\t\t\t\t\t\t\t\\\n"
+ " \t\t\t\t\t\t\t\t\t\\\n"
+ "-\tmight_sleep();\t\t\t\t\t\t\t\\\n"
+ " \t__cu_to = (to);\t\t\t\t\t\t\t\\\n"
+ " \t__cu_from = (from);\t\t\t\t\t\t\\\n"
+ " \t__cu_len = (n);\t\t\t\t\t\t\t\\\n"
+ "@@ -907,7 +902,6 @@ __clear_user(void __user *addr, __kernel_size_t size)\n"
+ " {\n"
+ " \t__kernel_size_t res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t\"move\\t$5, $0\\n\\t\"\n"
+ "@@ -956,7 +950,6 @@ __strncpy_from_user(char *__to, const char __user *__from, long __len)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t\"move\\t$5, %2\\n\\t\"\n"
+ "@@ -993,7 +986,6 @@ strncpy_from_user(char *__to, const char __user *__from, long __len)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t\"move\\t$5, %2\\n\\t\"\n"
+ "@@ -1012,7 +1004,6 @@ static inline long __strlen_user(const char __user *s)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t__MODULE_JAL(__strlen_user_nocheck_asm)\n"
+ "@@ -1042,7 +1033,6 @@ static inline long strlen_user(const char __user *s)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t__MODULE_JAL(__strlen_user_asm)\n"
+ "@@ -1059,7 +1049,6 @@ static inline long __strnlen_user(const char __user *s, long n)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t\"move\\t$5, %2\\n\\t\"\n"
+ "@@ -1090,7 +1079,6 @@ static inline long strnlen_user(const char __user *s, long n)\n"
+ " {\n"
+ " \tlong res;\n"
+ " \n"
+ "-\tmight_sleep();\n"
+ " \t__asm__ __volatile__(\n"
+ " \t\t\"move\\t$4, %1\\n\\t\"\n"
+ " \t\t\"move\\t$5, %2\\n\\t\"\n"
+ "\n"
+ "Why did you drop these annotations entirely?  They probably should be\n"
+ "switched over to might_fault().  Whatever - there are more annotations in\n"
+ "<asm/checksum.h> will need to be modified the same way.  And this\n"
+ "should probably be submitted as a separate patch anyway.\n"
+ "\n"
+ "diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c\n"
+ "index 0015e44..8603d91 100644\n"
+ "--- a/arch/mips/kernel/cevt-r4k.c\n"
+ "+++ b/arch/mips/kernel/cevt-r4k.c\n"
+ "@@ -82,7 +82,7 @@ out:\n"
+ " \n"
+ " struct irqaction c0_compare_irqaction = {\n"
+ " \t.handler = c0_compare_interrupt,\n"
+ "-\t.flags = IRQF_DISABLED | IRQF_PERCPU,\n"
+ "+\t.flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_NODELAY,\n"
+ " \t.name = \"timer\",\n"
+ " };\n"
+ " \n"
+ "diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S\n"
+ "index ffa3310..a993d0a 100644\n"
+ "--- a/arch/mips/kernel/entry.S\n"
+ "+++ b/arch/mips/kernel/entry.S\n"
+ "@@ -30,7 +30,7 @@\n"
+ " \t.align\t5\n"
+ " #ifndef CONFIG_PREEMPT\n"
+ " FEXPORT(ret_from_exception)\n"
+ "-\tlocal_irq_disable\t\t\t# preempt stop\n"
+ "+\traw_local_irq_disable\t\t\t# preempt stop\n"
+ " \tb\t__ret_from_irq\n"
+ " #endif\n"
+ " FEXPORT(ret_from_irq)\n"
+ "@@ -41,7 +41,7 @@ FEXPORT(__ret_from_irq)\n"
+ " \tbeqz\tt0, resume_kernel\n"
+ " \n"
+ " resume_userspace:\n"
+ "-\tlocal_irq_disable\t\t# make sure we dont miss an\n"
+ "+\traw_local_irq_disable\t\t# make sure we dont miss an\n"
+ " \t\t\t\t\t# interrupt setting need_resched\n"
+ " \t\t\t\t\t# between sampling and return\n"
+ " \tLONG_L\ta2, TI_FLAGS($28)\t# current->work\n"
+ "@@ -51,7 +51,9 @@ resume_userspace:\n"
+ " \n"
+ " #ifdef CONFIG_PREEMPT\n"
+ " resume_kernel:\n"
+ "-\tlocal_irq_disable\n"
+ "+\traw_local_irq_disable\n"
+ "+\tlw  t0, kernel_preemption\n"
+ "+\tbeqz t0,restore_all\n"
+ " \tlw\tt0, TI_PRE_COUNT($28)\n"
+ " \tbnez\tt0, restore_all\n"
+ " need_resched:\n"
+ "@@ -61,7 +63,9 @@ need_resched:\n"
+ " \tLONG_L\tt0, PT_STATUS(sp)\t\t# Interrupts off?\n"
+ " \tandi\tt0, 1\n"
+ " \tbeqz\tt0, restore_all\n"
+ "+\traw_local_irq_disable\n"
+ " \tjal\tpreempt_schedule_irq\n"
+ "+\tsw\tzero, TI_PRE_COUNT($28)\n"
+ " \tb\tneed_resched\n"
+ " #endif\n"
+ " \n"
+ "@@ -69,7 +73,7 @@ FEXPORT(ret_from_fork)\n"
+ " \tjal\tschedule_tail\t\t# a0 = struct task_struct *prev\n"
+ " \n"
+ " FEXPORT(syscall_exit)\n"
+ "-\tlocal_irq_disable\t\t# make sure need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make sure need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tLONG_L\ta2, TI_FLAGS($28)\t# current->work\n"
+ "@@ -145,9 +149,9 @@ work_pending:\n"
+ " \tandi\tt0, a2, _TIF_NEED_RESCHED # a2 is preloaded with TI_FLAGS\n"
+ " \tbeqz\tt0, work_notifysig\n"
+ " work_resched:\n"
+ "-\tjal\tschedule\n"
+ "+\tjal\t__schedule\n"
+ " \n"
+ "-\tlocal_irq_disable\t\t# make sure need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make sure need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tLONG_L\ta2, TI_FLAGS($28)\n"
+ "@@ -170,7 +174,7 @@ syscall_exit_work:\n"
+ " \tli\tt0, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT\n"
+ " \tand\tt0, a2\t\t\t# a2 is preloaded with TI_FLAGS\n"
+ " \tbeqz\tt0, work_pending\t# trace bit set?\n"
+ "-\tlocal_irq_enable\t\t# could let do_syscall_trace()\n"
+ "+\traw_local_irq_enable\t\t# could let do_syscall_trace()\n"
+ " \t\t\t\t\t# call schedule() instead\n"
+ " \tmove\ta0, sp\n"
+ " \tli\ta1, 1\n"
+ "diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c\n"
+ "index f4d1878..8af4c8f 100644\n"
+ "--- a/arch/mips/kernel/i8253.c\n"
+ "+++ b/arch/mips/kernel/i8253.c\n"
+ "@@ -14,7 +14,7 @@\n"
+ " #include <asm/io.h>\n"
+ " #include <asm/time.h>\n"
+ " \n"
+ "-DEFINE_SPINLOCK(i8253_lock);\n"
+ "+DEFINE_RAW_SPINLOCK(i8253_lock);\n"
+ " EXPORT_SYMBOL(i8253_lock);\n"
+ " \n"
+ " /*\n"
+ "@@ -97,7 +97,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)\n"
+ " \n"
+ " static struct irqaction irq0  = {\n"
+ " \t.handler = timer_interrupt,\n"
+ "-\t.flags = IRQF_DISABLED | IRQF_NOBALANCING,\n"
+ "+\t.flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_NODELAY,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"timer\"\n"
+ " };\n"
+ "diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c\n"
+ "index 7f9e771..d3f1a15 100644\n"
+ "--- a/arch/mips/kernel/i8259.c\n"
+ "+++ b/arch/mips/kernel/i8259.c\n"
+ "@@ -29,7 +29,7 @@\n"
+ "  */\n"
+ " \n"
+ " static int i8259A_auto_eoi = -1;\n"
+ "-DEFINE_SPINLOCK(i8259A_lock);\n"
+ "+DEFINE_RAW_SPINLOCK(i8259A_lock);\n"
+ " static void disable_8259A_irq(unsigned int irq);\n"
+ " static void enable_8259A_irq(unsigned int irq);\n"
+ " static void mask_and_ack_8259A(unsigned int irq);\n"
+ "@@ -310,6 +310,7 @@ static void init_8259A(int auto_eoi)\n"
+ "  */\n"
+ " static struct irqaction irq2 = {\n"
+ " \t.handler = no_action,\n"
+ "+\t.flags = IRQF_NODELAY,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ " };\n"
+ "diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c\n"
+ "index 1f60e27..80b7a13 100644\n"
+ "--- a/arch/mips/kernel/module.c\n"
+ "+++ b/arch/mips/kernel/module.c\n"
+ "@@ -41,7 +41,7 @@ struct mips_hi16 {\n"
+ " static struct mips_hi16 *mips_hi16_list;\n"
+ " \n"
+ " static LIST_HEAD(dbe_list);\n"
+ "-static DEFINE_SPINLOCK(dbe_lock);\n"
+ "+static DEFINE_RAW_SPINLOCK(dbe_lock);\n"
+ " \n"
+ " void *module_alloc(unsigned long size)\n"
+ " {\n"
+ "diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c\n"
+ "index ca2e402..048c829 100644\n"
+ "--- a/arch/mips/kernel/process.c\n"
+ "+++ b/arch/mips/kernel/process.c\n"
+ "@@ -59,13 +59,17 @@ void __noreturn cpu_idle(void)\n"
+ " \n"
+ " \t\t\tsmtc_idle_loop_hook();\n"
+ " #endif\n"
+ "+\t\t\tstop_critical_timings();\n"
+ " \t\t\tif (cpu_wait)\n"
+ " \t\t\t\t(*cpu_wait)();\n"
+ "+\t\t\tstart_critical_timings();\n"
+ " \t\t}\n"
+ " \t\ttick_nohz_restart_sched_tick();\n"
+ "-\t\tpreempt_enable_no_resched();\n"
+ "-\t\tschedule();\n"
+ "+\t\tlocal_irq_disable();\n"
+ "+\t\t__preempt_enable_no_resched();\n"
+ "+\t\t__schedule();\n"
+ " \t\tpreempt_disable();\n"
+ "+\t\tlocal_irq_enable();\n"
+ " \t}\n"
+ " }\n"
+ " \n"
+ "diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S\n"
+ "index 9ab70c3..043b6ef 100644\n"
+ "--- a/arch/mips/kernel/scall32-o32.S\n"
+ "+++ b/arch/mips/kernel/scall32-o32.S\n"
+ "@@ -69,7 +69,7 @@ stack_done:\n"
+ " 1:\tsw\tv0, PT_R2(sp)\t\t# result\n"
+ " \n"
+ " o32_syscall_exit:\n"
+ "-\tlocal_irq_disable\t\t# make sure need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make sure need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tlw\ta2, TI_FLAGS($28)\t# current->work\n"
+ "diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S\n"
+ "index 9b46986..caeb863 100644\n"
+ "--- a/arch/mips/kernel/scall64-64.S\n"
+ "+++ b/arch/mips/kernel/scall64-64.S\n"
+ "@@ -72,7 +72,7 @@ NESTED(handle_sys64, PT_SIZE, sp)\n"
+ " 1:\tsd\tv0, PT_R2(sp)\t\t# result\n"
+ " \n"
+ " n64_syscall_exit:\n"
+ "-\tlocal_irq_disable\t\t# make sure need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make sure need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tLONG_L\ta2, TI_FLAGS($28)\t# current->work\n"
+ "diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S\n"
+ "index 7438e92..8c6dc72 100644\n"
+ "--- a/arch/mips/kernel/scall64-n32.S\n"
+ "+++ b/arch/mips/kernel/scall64-n32.S\n"
+ "@@ -69,7 +69,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)\n"
+ " \tsd\tv0, PT_R0(sp)\t\t# set flag for syscall restarting\n"
+ " 1:\tsd\tv0, PT_R2(sp)\t\t# result\n"
+ " \n"
+ "-\tlocal_irq_disable\t\t# make sure need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make sure need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tLONG_L  a2, TI_FLAGS($28)\t# current->work\n"
+ "diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S\n"
+ "index b0fef4f..115047c 100644\n"
+ "--- a/arch/mips/kernel/scall64-o32.S\n"
+ "+++ b/arch/mips/kernel/scall64-o32.S\n"
+ "@@ -98,7 +98,7 @@ NESTED(handle_sys, PT_SIZE, sp)\n"
+ " 1:\tsd\tv0, PT_R2(sp)\t\t# result\n"
+ " \n"
+ " o32_syscall_exit:\n"
+ "-\tlocal_irq_disable\t\t# make need_resched and\n"
+ "+\traw_local_irq_disable\t\t# make need_resched and\n"
+ " \t\t\t\t\t# signals dont change between\n"
+ " \t\t\t\t\t# sampling and return\n"
+ " \tLONG_L\ta2, TI_FLAGS($28)\n"
+ "diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c\n"
+ "index 830c5ef..244f219 100644\n"
+ "--- a/arch/mips/kernel/signal.c\n"
+ "+++ b/arch/mips/kernel/signal.c\n"
+ "@@ -549,6 +549,11 @@ static int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,\n"
+ " \tif (err)\n"
+ " \t\tgoto give_sigsegv;\n"
+ " \n"
+ "+#ifdef CONFIG_PREEMPT_RT\n"
+ "+\tlocal_irq_enable();\n"
+ "+\tpreempt_check_resched();\n"
+ "+#endif\n"
+ "+\n"
+ " \t/*\n"
+ " \t * Arguments to signal handler:\n"
+ " \t *\n"
+ "diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c\n"
+ "index 2e74075..8f914b1 100644\n"
+ "--- a/arch/mips/kernel/signal32.c\n"
+ "+++ b/arch/mips/kernel/signal32.c\n"
+ "@@ -667,6 +667,10 @@ static int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs,\n"
+ " \tif (err)\n"
+ " \t\tgoto give_sigsegv;\n"
+ " \n"
+ "+#ifdef CONFIG_PREEMPT_RT\n"
+ "+\tlocal_irq_enable();\n"
+ "+\tpreempt_check_resched();\n"
+ "+#endif\n"
+ " \t/*\n"
+ " \t * Arguments to signal handler:\n"
+ " \t *\n"
+ "diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c\n"
+ "index 3da9470..19aab90 100644\n"
+ "--- a/arch/mips/kernel/smp.c\n"
+ "+++ b/arch/mips/kernel/smp.c\n"
+ "@@ -232,6 +232,8 @@ int setup_profiling_timer(unsigned int multiplier)\n"
+ " \treturn 0;\n"
+ " }\n"
+ " \n"
+ "+static DEFINE_RAW_SPINLOCK(tlbstate_lock);\n"
+ "+\n"
+ " static void flush_tlb_all_ipi(void *info)\n"
+ " {\n"
+ " \tlocal_flush_tlb_all();\n"
+ "@@ -289,6 +291,7 @@ static inline void smp_on_each_tlb(void (*func) (void *info), void *info)\n"
+ " void flush_tlb_mm(struct mm_struct *mm)\n"
+ " {\n"
+ " \tpreempt_disable();\n"
+ "+\tspin_lock(&tlbstate_lock);\n"
+ " \n"
+ " \tif ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {\n"
+ " \t\tsmp_on_other_tlbs(flush_tlb_mm_ipi, mm);\n"
+ "@@ -301,6 +304,7 @@ void flush_tlb_mm(struct mm_struct *mm)\n"
+ " \t\t\tif (cpu_context(cpu, mm))\n"
+ " \t\t\t\tcpu_context(cpu, mm) = 0;\n"
+ " \t}\n"
+ "+\tspin_unlock(&tlbstate_lock);\n"
+ " \tlocal_flush_tlb_mm(mm);\n"
+ " \n"
+ " \tpreempt_enable();\n"
+ "@@ -324,6 +328,8 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l\n"
+ " \tstruct mm_struct *mm = vma->vm_mm;\n"
+ " \n"
+ " \tpreempt_disable();\n"
+ "+\tspin_lock(&tlbstate_lock);\n"
+ "+\n"
+ " \tif ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {\n"
+ " \t\tstruct flush_tlb_data fd = {\n"
+ " \t\t\t.vma = vma,\n"
+ "@@ -341,6 +347,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l\n"
+ " \t\t\tif (cpu_context(cpu, mm))\n"
+ " \t\t\t\tcpu_context(cpu, mm) = 0;\n"
+ " \t}\n"
+ "+\tspin_unlock(&tlbstate_lock);\n"
+ " \tlocal_flush_tlb_range(vma, start, end);\n"
+ " \tpreempt_enable();\n"
+ " }\n"
+ "@@ -372,6 +379,7 @@ static void flush_tlb_page_ipi(void *info)\n"
+ " void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)\n"
+ " {\n"
+ " \tpreempt_disable();\n"
+ "+\tspin_lock(&tlbstate_lock);\n"
+ " \tif ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) {\n"
+ " \t\tstruct flush_tlb_data fd = {\n"
+ " \t\t\t.vma = vma,\n"
+ "@@ -388,6 +396,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)\n"
+ " \t\t\tif (cpu_context(cpu, vma->vm_mm))\n"
+ " \t\t\t\tcpu_context(cpu, vma->vm_mm) = 0;\n"
+ " \t}\n"
+ "+\tspin_unlock(&tlbstate_lock);\n"
+ " \tlocal_flush_tlb_page(vma, page);\n"
+ " \tpreempt_enable();\n"
+ " }\n"
+ "diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c\n"
+ "index b2d7041..63232be 100644\n"
+ "--- a/arch/mips/kernel/traps.c\n"
+ "+++ b/arch/mips/kernel/traps.c\n"
+ "@@ -351,7 +351,7 @@ void show_registers(const struct pt_regs *regs)\n"
+ " \tprintk(\"\\n\");\n"
+ " }\n"
+ " \n"
+ "-static DEFINE_SPINLOCK(die_lock);\n"
+ "+static DEFINE_RAW_SPINLOCK(die_lock);\n"
+ " \n"
+ " void __noreturn die(const char * str, const struct pt_regs * regs)\n"
+ " {\n"
+ "diff --git a/arch/mips/lemote/lm2e/irq.c b/arch/mips/lemote/lm2e/irq.c\n"
+ "index 3e0b7be..417faf4 100644\n"
+ "--- a/arch/mips/lemote/lm2e/irq.c\n"
+ "+++ b/arch/mips/lemote/lm2e/irq.c\n"
+ "@@ -92,6 +92,7 @@ asmlinkage void plat_irq_dispatch(void)\n"
+ " \n"
+ " static struct irqaction cascade_irqaction = {\n"
+ " \t.handler = no_action,\n"
+ "+\t.flags = IRQF_NODELAY,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ " };\n"
+ "@@ -105,7 +106,8 @@ void __init arch_init_irq(void)\n"
+ " \t * int-handler is not on bootstrap\n"
+ " \t */\n"
+ " \tclear_c0_status(ST0_IM | ST0_BEV);\n"
+ "-\tlocal_irq_disable();\n"
+ "+\tif (!irq_disabled())\n"
+ "+\t\traw_local_irq_disable();\n"
+ " \n"
+ " \t/* most bonito irq should be level triggered */\n"
+ " \tBONITO_INTEDGE = BONITO_ICU_SYSTEMERR | BONITO_ICU_MASTERERR |\n"
+ "diff --git a/arch/mips/lemote/lm2f/lmbook/irq.c b/arch/mips/lemote/lm2f/lmbook/irq.c\n"
+ "index a0039eb..b7334ac 100644\n"
+ "--- a/arch/mips/lemote/lm2f/lmbook/irq.c\n"
+ "+++ b/arch/mips/lemote/lm2f/lmbook/irq.c\n"
+ "@@ -174,6 +174,7 @@ asmlinkage void plat_irq_dispatch(void)\n"
+ " \n"
+ " static struct irqaction cascade_irqaction = {\n"
+ " \t.handler = no_action,\n"
+ "+\t.flags = IRQF_NODELAY,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ " };\n"
+ "@@ -187,7 +188,7 @@ static struct irqaction ip6_irqaction = {\n"
+ " \t.handler = ip6_action,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ "-\t.flags = IRQF_SHARED,\n"
+ "+\t.flags = IRQF_SHARED | IRQF_NODELAY,\n"
+ " };\n"
+ " \n"
+ " void __init arch_init_irq(void)\n"
+ "@@ -199,7 +200,8 @@ void __init arch_init_irq(void)\n"
+ " \t * int-handler is not on bootstrap\n"
+ " \t */\n"
+ " \tclear_c0_status(ST0_IM | ST0_BEV);\n"
+ "-\tlocal_irq_disable();\n"
+ "+\tif (!irqs_disabled())\n"
+ "+\t\traw_local_irq_disable();\n"
+ " \t\n"
+ " \t/* setup cs5536 as high level */\n"
+ " \tBONITO_INTPOL  = (1 << 11 | 1 << 12);\n"
+ "diff --git a/arch/mips/lemote/lm2f/lmbox/irq.c b/arch/mips/lemote/lm2f/lmbox/irq.c\n"
+ "index d26da86..164e0f2 100644\n"
+ "--- a/arch/mips/lemote/lm2f/lmbox/irq.c\n"
+ "+++ b/arch/mips/lemote/lm2f/lmbox/irq.c\n"
+ "@@ -174,6 +174,7 @@ asmlinkage void plat_irq_dispatch(void)\n"
+ " \n"
+ " static struct irqaction cascade_irqaction = {\n"
+ " \t.handler = no_action,\n"
+ "+\t.flags = IRQF_NODELAY,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ " };\n"
+ "@@ -187,7 +188,7 @@ static struct irqaction ip6_irqaction = {\n"
+ " \t.handler = ip6_action,\n"
+ " \t.mask = CPU_MASK_NONE,\n"
+ " \t.name = \"cascade\",\n"
+ "-\t.flags = IRQF_SHARED,\n"
+ "+\t.flags = IRQF_SHARED | IRQF_NODELAY,\n"
+ " };\n"
+ " \n"
+ " void __init arch_init_irq(void)\n"
+ "@@ -199,7 +200,8 @@ void __init arch_init_irq(void)\n"
+ " \t * int-handler is not on bootstrap\n"
+ " \t */\n"
+ " \tclear_c0_status(ST0_IM | ST0_BEV);\n"
+ "-\tlocal_irq_disable();\n"
+ "+\tif (!irqs_disabled())\n"
+ "+\t\traw_local_irq_disable();\n"
+ " \t\n"
+ " \t/* setup cs5536 as high level */\n"
+ " \tBONITO_INTPOL  = (1 << 11 | 1 << 12);\n"
+ "diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c\n"
+ "index 137c14b..e5e3028 100644\n"
+ "--- a/arch/mips/mm/init.c\n"
+ "+++ b/arch/mips/mm/init.c\n"
+ "@@ -61,7 +61,7 @@\n"
+ " \n"
+ " #endif /* CONFIG_MIPS_MT_SMTC */\n"
+ " \n"
+ "-DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);\n"
+ "+DEFINE_PER_CPU_LOCKED(struct mmu_gather, mmu_gathers);\n"
+ " \n"
+ " /*\n"
+ "  * We have up to 8 empty zeroed pages so we can map one of the right colour\n"
+ "diff --git a/defconfig-fuloong-rt b/defconfig-fuloong-rt\n"
+ "new file mode 100644\n"
+ "index 0000000..becd80e\n"
+ "--- /dev/null\n"
+ "+++ b/defconfig-fuloong-rt\n"
+ "@@ -0,0 +1,1038 @@\n"
+ "+#\n"
+ "+# Automatically generated make config: don't edit\n"
+ "+# Linux kernel version: 2.6.29.1-rt8\n"
+ "+# Sun Apr 19 15:47:09 2009\n"
+ "+#\n"
+ "+CONFIG_MIPS=y\n"
+ "+\n"
+ "+#\n"
+ "+# Machine selection\n"
+ "+#\n"
+ "+# CONFIG_MACH_ALCHEMY is not set\n"
+ "+# CONFIG_BASLER_EXCITE is not set\n"
+ "+# CONFIG_BCM47XX is not set\n"
+ "+# CONFIG_MIPS_COBALT is not set\n"
+ "+# CONFIG_MACH_DECSTATION is not set\n"
+ "+# CONFIG_MACH_JAZZ is not set\n"
+ "+# CONFIG_LASAT is not set\n"
+ "+# CONFIG_LEMOTE_FULONG is not set\n"
+ "+CONFIG_MACH_LM2F=y\n"
+ "+# CONFIG_MIPS_MALTA is not set\n"
+ "+# CONFIG_MIPS_SIM is not set\n"
+ "+# CONFIG_NEC_MARKEINS is not set\n"
+ "+# CONFIG_MACH_VR41XX is not set\n"
+ "+# CONFIG_NXP_STB220 is not set\n"
+ "+# CONFIG_NXP_STB225 is not set\n"
+ "+# CONFIG_PNX8550_JBS is not set\n"
+ "+# CONFIG_PNX8550_STB810 is not set\n"
+ "+# CONFIG_PMC_MSP is not set\n"
+ "+# CONFIG_PMC_YOSEMITE is not set\n"
+ "+# CONFIG_SGI_IP22 is not set\n"
+ "+# CONFIG_SGI_IP27 is not set\n"
+ "+# CONFIG_SGI_IP28 is not set\n"
+ "+# CONFIG_SGI_IP32 is not set\n"
+ "+# CONFIG_SIBYTE_CRHINE is not set\n"
+ "+# CONFIG_SIBYTE_CARMEL is not set\n"
+ "+# CONFIG_SIBYTE_CRHONE is not set\n"
+ "+# CONFIG_SIBYTE_RHONE is not set\n"
+ "+# CONFIG_SIBYTE_SWARM is not set\n"
+ "+# CONFIG_SIBYTE_LITTLESUR is not set\n"
+ "+# CONFIG_SIBYTE_SENTOSA is not set\n"
+ "+# CONFIG_SIBYTE_BIGSUR is not set\n"
+ "+# CONFIG_SNI_RM is not set\n"
+ "+# CONFIG_MACH_TX39XX is not set\n"
+ "+# CONFIG_MACH_TX49XX is not set\n"
+ "+# CONFIG_MIKROTIK_RB532 is not set\n"
+ "+# CONFIG_WR_PPMC is not set\n"
+ "+# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set\n"
+ "+# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set\n"
+ "+CONFIG_LEMOTE_FULONG2F=y\n"
+ "+# CONFIG_LEMOTE_2FNOTEBOOK is not set\n"
+ "+CONFIG_CS5536_RTC_BUG=y\n"
+ "+CONFIG_CS5536=y\n"
+ "+# CONFIG_LEMOTE_NAS is not set\n"
+ "+CONFIG_ARCH_SPARSEMEM_ENABLE=y\n"
+ "+CONFIG_RWSEM_GENERIC_SPINLOCK=y\n"
+ "+CONFIG_ASM_SEMAPHORE=y\n"
+ "+# CONFIG_ARCH_HAS_ILOG2_U32 is not set\n"
+ "+# CONFIG_ARCH_HAS_ILOG2_U64 is not set\n"
+ "+CONFIG_ARCH_SUPPORTS_OPROFILE=y\n"
+ "+CONFIG_GENERIC_FIND_NEXT_BIT=y\n"
+ "+CONFIG_GENERIC_HWEIGHT=y\n"
+ "+CONFIG_GENERIC_CALIBRATE_DELAY=y\n"
+ "+CONFIG_GENERIC_CLOCKEVENTS=y\n"
+ "+CONFIG_GENERIC_TIME=y\n"
+ "+CONFIG_GENERIC_CMOS_UPDATE=y\n"
+ "+CONFIG_SCHED_OMIT_FRAME_POINTER=y\n"
+ "+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y\n"
+ "+CONFIG_CEVT_R4K_LIB=y\n"
+ "+CONFIG_CEVT_R4K=y\n"
+ "+CONFIG_CSRC_R4K_LIB=y\n"
+ "+CONFIG_CSRC_R4K=y\n"
+ "+CONFIG_DMA_NONCOHERENT=y\n"
+ "+CONFIG_DMA_NEED_PCI_MAP_STATE=y\n"
+ "+CONFIG_EARLY_PRINTK=y\n"
+ "+CONFIG_SYS_HAS_EARLY_PRINTK=y\n"
+ "+# CONFIG_HOTPLUG_CPU is not set\n"
+ "+CONFIG_I8259=y\n"
+ "+# CONFIG_NO_IOPORT is not set\n"
+ "+CONFIG_GENERIC_ISA_DMA=y\n"
+ "+CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y\n"
+ "+# CONFIG_CPU_BIG_ENDIAN is not set\n"
+ "+CONFIG_CPU_LITTLE_ENDIAN=y\n"
+ "+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y\n"
+ "+CONFIG_IRQ_CPU=y\n"
+ "+CONFIG_BOOT_ELF32=y\n"
+ "+CONFIG_MIPS_L1_CACHE_SHIFT=5\n"
+ "+CONFIG_HAVE_STD_PC_SERIAL_PORT=y\n"
+ "+\n"
+ "+#\n"
+ "+# CPU selection\n"
+ "+#\n"
+ "+CONFIG_CPU_LOONGSON2=y\n"
+ "+# CONFIG_CPU_MIPS32_R1 is not set\n"
+ "+# CONFIG_CPU_MIPS32_R2 is not set\n"
+ "+# CONFIG_CPU_MIPS64_R1 is not set\n"
+ "+# CONFIG_CPU_MIPS64_R2 is not set\n"
+ "+# CONFIG_CPU_R3000 is not set\n"
+ "+# CONFIG_CPU_TX39XX is not set\n"
+ "+# CONFIG_CPU_VR41XX is not set\n"
+ "+# CONFIG_CPU_R4300 is not set\n"
+ "+# CONFIG_CPU_R4X00 is not set\n"
+ "+# CONFIG_CPU_TX49XX is not set\n"
+ "+# CONFIG_CPU_R5000 is not set\n"
+ "+# CONFIG_CPU_R5432 is not set\n"
+ "+# CONFIG_CPU_R5500 is not set\n"
+ "+# CONFIG_CPU_R6000 is not set\n"
+ "+# CONFIG_CPU_NEVADA is not set\n"
+ "+# CONFIG_CPU_R8000 is not set\n"
+ "+# CONFIG_CPU_R10000 is not set\n"
+ "+# CONFIG_CPU_RM7000 is not set\n"
+ "+# CONFIG_CPU_RM9000 is not set\n"
+ "+# CONFIG_CPU_SB1 is not set\n"
+ "+# CONFIG_CPU_CAVIUM_OCTEON is not set\n"
+ "+CONFIG_SYS_HAS_CPU_LOONGSON2=y\n"
+ "+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y\n"
+ "+CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y\n"
+ "+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y\n"
+ "+CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y\n"
+ "+\n"
+ "+#\n"
+ "+# Kernel type\n"
+ "+#\n"
+ "+# CONFIG_32BIT is not set\n"
+ "+CONFIG_64BIT=y\n"
+ "+# CONFIG_PAGE_SIZE_4KB is not set\n"
+ "+# CONFIG_PAGE_SIZE_8KB is not set\n"
+ "+CONFIG_PAGE_SIZE_16KB=y\n"
+ "+# CONFIG_PAGE_SIZE_64KB is not set\n"
+ "+CONFIG_BOARD_SCACHE=y\n"
+ "+CONFIG_MIPS_MT_DISABLED=y\n"
+ "+# CONFIG_MIPS_MT_SMP is not set\n"
+ "+# CONFIG_MIPS_MT_SMTC is not set\n"
+ "+CONFIG_CPU_HAS_WB=y\n"
+ "+CONFIG_CPU_HAS_SYNC=y\n"
+ "+CONFIG_GENERIC_HARDIRQS=y\n"
+ "+CONFIG_GENERIC_IRQ_PROBE=y\n"
+ "+CONFIG_CPU_SUPPORTS_HIGHMEM=y\n"
+ "+CONFIG_SYS_SUPPORTS_HIGHMEM=y\n"
+ "+CONFIG_ARCH_FLATMEM_ENABLE=y\n"
+ "+CONFIG_ARCH_POPULATES_NODE_MAP=y\n"
+ "+CONFIG_SELECT_MEMORY_MODEL=y\n"
+ "+CONFIG_FLATMEM_MANUAL=y\n"
+ "+# CONFIG_DISCONTIGMEM_MANUAL is not set\n"
+ "+# CONFIG_SPARSEMEM_MANUAL is not set\n"
+ "+CONFIG_FLATMEM=y\n"
+ "+CONFIG_FLAT_NODE_MEM_MAP=y\n"
+ "+CONFIG_SPARSEMEM_STATIC=y\n"
+ "+CONFIG_PAGEFLAGS_EXTENDED=y\n"
+ "+CONFIG_SPLIT_PTLOCK_CPUS=4\n"
+ "+CONFIG_PHYS_ADDR_T_64BIT=y\n"
+ "+CONFIG_ZONE_DMA_FLAG=0\n"
+ "+CONFIG_VIRT_TO_BUS=y\n"
+ "+CONFIG_UNEVICTABLE_LRU=y\n"
+ "+CONFIG_TICK_ONESHOT=y\n"
+ "+# CONFIG_NO_HZ is not set\n"
+ "+CONFIG_HIGH_RES_TIMERS=y\n"
+ "+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y\n"
+ "+# CONFIG_HZ_48 is not set\n"
+ "+# CONFIG_HZ_100 is not set\n"
+ "+# CONFIG_HZ_128 is not set\n"
+ "+# CONFIG_HZ_250 is not set\n"
+ "+# CONFIG_HZ_256 is not set\n"
+ "+CONFIG_HZ_1000=y\n"
+ "+# CONFIG_HZ_1024 is not set\n"
+ "+CONFIG_SYS_SUPPORTS_ARBIT_HZ=y\n"
+ "+CONFIG_HZ=1000\n"
+ "+# CONFIG_PREEMPT_NONE is not set\n"
+ "+# CONFIG_PREEMPT_VOLUNTARY is not set\n"
+ "+# CONFIG_PREEMPT_DESKTOP is not set\n"
+ "+CONFIG_PREEMPT_RT=y\n"
+ "+CONFIG_PREEMPT=y\n"
+ "+CONFIG_PREEMPT_SOFTIRQS=y\n"
+ "+CONFIG_PREEMPT_HARDIRQS=y\n"
+ "+# CONFIG_KEXEC is not set\n"
+ "+# CONFIG_SECCOMP is not set\n"
+ "+CONFIG_LOCKDEP_SUPPORT=y\n"
+ "+CONFIG_STACKTRACE_SUPPORT=y\n"
+ "+CONFIG_DEFCONFIG_LIST=\"/lib/modules/$UNAME_RELEASE/.config\"\n"
+ "+\n"
+ "+#\n"
+ "+# General setup\n"
+ "+#\n"
+ "+CONFIG_EXPERIMENTAL=y\n"
+ "+CONFIG_BROKEN_ON_SMP=y\n"
+ "+CONFIG_LOCK_KERNEL=y\n"
+ "+CONFIG_INIT_ENV_ARG_LIMIT=32\n"
+ "+CONFIG_LOCALVERSION=\"-fuloong2f\"\n"
+ "+# CONFIG_LOCALVERSION_AUTO is not set\n"
+ "+# CONFIG_SWAP is not set\n"
+ "+CONFIG_SYSVIPC=y\n"
+ "+CONFIG_SYSVIPC_SYSCTL=y\n"
+ "+CONFIG_POSIX_MQUEUE=y\n"
+ "+# CONFIG_BSD_PROCESS_ACCT is not set\n"
+ "+# CONFIG_TASKSTATS is not set\n"
+ "+# CONFIG_AUDIT is not set\n"
+ "+\n"
+ "+#\n"
+ "+# RCU Subsystem\n"
+ "+#\n"
+ "+# CONFIG_CLASSIC_RCU is not set\n"
+ "+# CONFIG_TREE_RCU is not set\n"
+ "+CONFIG_PREEMPT_RCU=y\n"
+ "+# CONFIG_RCU_TRACE is not set\n"
+ "+# CONFIG_TREE_RCU_TRACE is not set\n"
+ "+# CONFIG_PREEMPT_RCU_TRACE is not set\n"
+ "+# CONFIG_IKCONFIG is not set\n"
+ "+CONFIG_LOG_BUF_SHIFT=15\n"
+ "+# CONFIG_GROUP_SCHED is not set\n"
+ "+# CONFIG_CGROUPS is not set\n"
+ "+# CONFIG_RELAY is not set\n"
+ "+# CONFIG_NAMESPACES is not set\n"
+ "+# CONFIG_BLK_DEV_INITRD is not set\n"
+ "+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set\n"
+ "+CONFIG_SYSCTL=y\n"
+ "+CONFIG_ANON_INODES=y\n"
+ "+CONFIG_EMBEDDED=y\n"
+ "+# CONFIG_SYSCTL_SYSCALL is not set\n"
+ "+# CONFIG_KALLSYMS is not set\n"
+ "+# CONFIG_HOTPLUG is not set\n"
+ "+CONFIG_PRINTK=y\n"
+ "+CONFIG_BUG=y\n"
+ "+# CONFIG_ELF_CORE is not set\n"
+ "+# CONFIG_PCSPKR_PLATFORM is not set\n"
+ "+CONFIG_BASE_FULL=y\n"
+ "+CONFIG_FUTEX=y\n"
+ "+CONFIG_EPOLL=y\n"
+ "+CONFIG_SIGNALFD=y\n"
+ "+CONFIG_TIMERFD=y\n"
+ "+CONFIG_EVENTFD=y\n"
+ "+# CONFIG_SHMEM is not set\n"
+ "+CONFIG_AIO=y\n"
+ "+\n"
+ "+#\n"
+ "+# Performance Counters\n"
+ "+#\n"
+ "+# CONFIG_VM_EVENT_COUNTERS is not set\n"
+ "+CONFIG_PCI_QUIRKS=y\n"
+ "+CONFIG_COMPAT_BRK=y\n"
+ "+CONFIG_SLAB=y\n"
+ "+# CONFIG_SLUB is not set\n"
+ "+# CONFIG_SLOB is not set\n"
+ "+# CONFIG_PROFILING is not set\n"
+ "+# CONFIG_MARKERS is not set\n"
+ "+CONFIG_HAVE_OPROFILE=y\n"
+ "+CONFIG_HAVE_SYSCALL_WRAPPERS=y\n"
+ "+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set\n"
+ "+CONFIG_SLABINFO=y\n"
+ "+CONFIG_RT_MUTEXES=y\n"
+ "+CONFIG_BASE_SMALL=0\n"
+ "+# CONFIG_MODULES is not set\n"
+ "+CONFIG_BLOCK=y\n"
+ "+# CONFIG_BLK_DEV_BSG is not set\n"
+ "+# CONFIG_BLK_DEV_INTEGRITY is not set\n"
+ "+CONFIG_BLOCK_COMPAT=y\n"
+ "+\n"
+ "+#\n"
+ "+# IO Schedulers\n"
+ "+#\n"
+ "+CONFIG_IOSCHED_NOOP=y\n"
+ "+# CONFIG_IOSCHED_AS is not set\n"
+ "+CONFIG_IOSCHED_DEADLINE=y\n"
+ "+# CONFIG_IOSCHED_CFQ is not set\n"
+ "+# CONFIG_DEFAULT_AS is not set\n"
+ "+CONFIG_DEFAULT_DEADLINE=y\n"
+ "+# CONFIG_DEFAULT_CFQ is not set\n"
+ "+# CONFIG_DEFAULT_NOOP is not set\n"
+ "+CONFIG_DEFAULT_IOSCHED=\"deadline\"\n"
+ "+# CONFIG_FREEZER is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Bus options (PCI, PCMCIA, EISA, ISA, TC)\n"
+ "+#\n"
+ "+CONFIG_HW_HAS_PCI=y\n"
+ "+CONFIG_PCI=y\n"
+ "+CONFIG_PCI_DOMAINS=y\n"
+ "+# CONFIG_ARCH_SUPPORTS_MSI is not set\n"
+ "+# CONFIG_PCI_LEGACY is not set\n"
+ "+# CONFIG_PCI_STUB is not set\n"
+ "+CONFIG_ISA=y\n"
+ "+CONFIG_MMU=y\n"
+ "+\n"
+ "+#\n"
+ "+# Executable file formats\n"
+ "+#\n"
+ "+CONFIG_BINFMT_ELF=y\n"
+ "+# CONFIG_HAVE_AOUT is not set\n"
+ "+# CONFIG_BINFMT_MISC is not set\n"
+ "+CONFIG_MIPS32_COMPAT=y\n"
+ "+CONFIG_COMPAT=y\n"
+ "+CONFIG_SYSVIPC_COMPAT=y\n"
+ "+CONFIG_MIPS32_O32=y\n"
+ "+CONFIG_MIPS32_N32=y\n"
+ "+CONFIG_BINFMT_ELF32=y\n"
+ "+\n"
+ "+#\n"
+ "+# Power management options\n"
+ "+#\n"
+ "+CONFIG_ARCH_SUSPEND_POSSIBLE=y\n"
+ "+# CONFIG_PM is not set\n"
+ "+\n"
+ "+#\n"
+ "+# CPU Frequency scaling\n"
+ "+#\n"
+ "+# CONFIG_CPU_FREQ is not set\n"
+ "+CONFIG_NET=y\n"
+ "+\n"
+ "+#\n"
+ "+# Networking options\n"
+ "+#\n"
+ "+CONFIG_COMPAT_NET_DEV_OPS=y\n"
+ "+CONFIG_PACKET=y\n"
+ "+# CONFIG_PACKET_MMAP is not set\n"
+ "+CONFIG_UNIX=y\n"
+ "+# CONFIG_NET_KEY is not set\n"
+ "+CONFIG_INET=y\n"
+ "+# CONFIG_IP_MULTICAST is not set\n"
+ "+# CONFIG_IP_ADVANCED_ROUTER is not set\n"
+ "+CONFIG_IP_FIB_HASH=y\n"
+ "+# CONFIG_IP_PNP is not set\n"
+ "+# CONFIG_NET_IPIP is not set\n"
+ "+# CONFIG_NET_IPGRE is not set\n"
+ "+# CONFIG_ARPD is not set\n"
+ "+# CONFIG_SYN_COOKIES is not set\n"
+ "+# CONFIG_INET_AH is not set\n"
+ "+# CONFIG_INET_ESP is not set\n"
+ "+# CONFIG_INET_IPCOMP is not set\n"
+ "+# CONFIG_INET_XFRM_TUNNEL is not set\n"
+ "+# CONFIG_INET_TUNNEL is not set\n"
+ "+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set\n"
+ "+# CONFIG_INET_XFRM_MODE_TUNNEL is not set\n"
+ "+# CONFIG_INET_XFRM_MODE_BEET is not set\n"
+ "+# CONFIG_INET_LRO is not set\n"
+ "+# CONFIG_INET_DIAG is not set\n"
+ "+# CONFIG_TCP_CONG_ADVANCED is not set\n"
+ "+CONFIG_TCP_CONG_CUBIC=y\n"
+ "+CONFIG_DEFAULT_TCP_CONG=\"cubic\"\n"
+ "+# CONFIG_TCP_MD5SIG is not set\n"
+ "+# CONFIG_IPV6 is not set\n"
+ "+# CONFIG_NETWORK_SECMARK is not set\n"
+ "+# CONFIG_NETFILTER is not set\n"
+ "+# CONFIG_IP_DCCP is not set\n"
+ "+# CONFIG_IP_SCTP is not set\n"
+ "+# CONFIG_TIPC is not set\n"
+ "+# CONFIG_ATM is not set\n"
+ "+# CONFIG_BRIDGE is not set\n"
+ "+# CONFIG_NET_DSA is not set\n"
+ "+# CONFIG_VLAN_8021Q is not set\n"
+ "+# CONFIG_DECNET is not set\n"
+ "+# CONFIG_LLC2 is not set\n"
+ "+# CONFIG_IPX is not set\n"
+ "+# CONFIG_ATALK is not set\n"
+ "+# CONFIG_X25 is not set\n"
+ "+# CONFIG_LAPB is not set\n"
+ "+# CONFIG_ECONET is not set\n"
+ "+# CONFIG_WAN_ROUTER is not set\n"
+ "+# CONFIG_NET_SCHED is not set\n"
+ "+# CONFIG_DCB is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Network testing\n"
+ "+#\n"
+ "+# CONFIG_NET_PKTGEN is not set\n"
+ "+# CONFIG_HAMRADIO is not set\n"
+ "+# CONFIG_CAN is not set\n"
+ "+# CONFIG_IRDA is not set\n"
+ "+# CONFIG_BT is not set\n"
+ "+# CONFIG_AF_RXRPC is not set\n"
+ "+# CONFIG_PHONET is not set\n"
+ "+# CONFIG_WIRELESS is not set\n"
+ "+# CONFIG_WIMAX is not set\n"
+ "+# CONFIG_RFKILL is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Device Drivers\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# Generic Driver Options\n"
+ "+#\n"
+ "+CONFIG_STANDALONE=y\n"
+ "+CONFIG_PREVENT_FIRMWARE_BUILD=y\n"
+ "+# CONFIG_SYS_HYPERVISOR is not set\n"
+ "+# CONFIG_CONNECTOR is not set\n"
+ "+# CONFIG_MTD is not set\n"
+ "+# CONFIG_PARPORT is not set\n"
+ "+# CONFIG_PNP is not set\n"
+ "+# CONFIG_BLK_DEV is not set\n"
+ "+# CONFIG_MISC_DEVICES is not set\n"
+ "+CONFIG_HAVE_IDE=y\n"
+ "+CONFIG_IDE=y\n"
+ "+\n"
+ "+#\n"
+ "+# Please see Documentation/ide/ide.txt for help/info on IDE drives\n"
+ "+#\n"
+ "+CONFIG_IDE_TIMINGS=y\n"
+ "+# CONFIG_BLK_DEV_IDE_SATA is not set\n"
+ "+CONFIG_IDE_GD=y\n"
+ "+CONFIG_IDE_GD_ATA=y\n"
+ "+# CONFIG_IDE_GD_ATAPI is not set\n"
+ "+# CONFIG_BLK_DEV_IDECD is not set\n"
+ "+# CONFIG_BLK_DEV_IDETAPE is not set\n"
+ "+CONFIG_IDE_TASK_IOCTL=y\n"
+ "+CONFIG_IDE_PROC_FS=y\n"
+ "+\n"
+ "+#\n"
+ "+# IDE chipset support/bugfixes\n"
+ "+#\n"
+ "+# CONFIG_IDE_GENERIC is not set\n"
+ "+# CONFIG_BLK_DEV_PLATFORM is not set\n"
+ "+CONFIG_BLK_DEV_IDEDMA_SFF=y\n"
+ "+\n"
+ "+#\n"
+ "+# PCI IDE chipsets support\n"
+ "+#\n"
+ "+CONFIG_BLK_DEV_IDEPCI=y\n"
+ "+# CONFIG_IDEPCI_PCIBUS_ORDER is not set\n"
+ "+# CONFIG_BLK_DEV_OFFBOARD is not set\n"
+ "+CONFIG_BLK_DEV_GENERIC=y\n"
+ "+# CONFIG_BLK_DEV_OPTI621 is not set\n"
+ "+CONFIG_BLK_DEV_IDEDMA_PCI=y\n"
+ "+# CONFIG_BLK_DEV_AEC62XX is not set\n"
+ "+# CONFIG_BLK_DEV_ALI15X3 is not set\n"
+ "+CONFIG_BLK_DEV_AMD74XX=y\n"
+ "+# CONFIG_BLK_DEV_CMD64X is not set\n"
+ "+# CONFIG_BLK_DEV_TRIFLEX is not set\n"
+ "+# CONFIG_BLK_DEV_CS5520 is not set\n"
+ "+# CONFIG_BLK_DEV_CS5530 is not set\n"
+ "+# CONFIG_BLK_DEV_HPT366 is not set\n"
+ "+CONFIG_BLK_DEV_JMICRON=y\n"
+ "+# CONFIG_BLK_DEV_SC1200 is not set\n"
+ "+# CONFIG_BLK_DEV_PIIX is not set\n"
+ "+# CONFIG_BLK_DEV_IT8172 is not set\n"
+ "+# CONFIG_BLK_DEV_IT8213 is not set\n"
+ "+# CONFIG_BLK_DEV_IT821X is not set\n"
+ "+# CONFIG_BLK_DEV_NS87415 is not set\n"
+ "+# CONFIG_BLK_DEV_PDC202XX_OLD is not set\n"
+ "+# CONFIG_BLK_DEV_PDC202XX_NEW is not set\n"
+ "+# CONFIG_BLK_DEV_SVWKS is not set\n"
+ "+# CONFIG_BLK_DEV_SIIMAGE is not set\n"
+ "+# CONFIG_BLK_DEV_SLC90E66 is not set\n"
+ "+# CONFIG_BLK_DEV_TRM290 is not set\n"
+ "+# CONFIG_BLK_DEV_VIA82CXXX is not set\n"
+ "+# CONFIG_BLK_DEV_TC86C001 is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Other IDE chipsets support\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# Note: most of these also require special kernel boot parameters\n"
+ "+#\n"
+ "+# CONFIG_BLK_DEV_4DRIVES is not set\n"
+ "+# CONFIG_BLK_DEV_ALI14XX is not set\n"
+ "+# CONFIG_BLK_DEV_DTC2278 is not set\n"
+ "+# CONFIG_BLK_DEV_HT6560B is not set\n"
+ "+# CONFIG_BLK_DEV_QD65XX is not set\n"
+ "+# CONFIG_BLK_DEV_UMC8672 is not set\n"
+ "+CONFIG_BLK_DEV_IDEDMA=y\n"
+ "+\n"
+ "+#\n"
+ "+# SCSI device support\n"
+ "+#\n"
+ "+# CONFIG_RAID_ATTRS is not set\n"
+ "+# CONFIG_SCSI is not set\n"
+ "+# CONFIG_SCSI_DMA is not set\n"
+ "+# CONFIG_SCSI_NETLINK is not set\n"
+ "+# CONFIG_ATA is not set\n"
+ "+# CONFIG_MD is not set\n"
+ "+# CONFIG_FUSION is not set\n"
+ "+\n"
+ "+#\n"
+ "+# IEEE 1394 (FireWire) support\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# Enable only one of the two stacks, unless you know what you are doing\n"
+ "+#\n"
+ "+# CONFIG_FIREWIRE is not set\n"
+ "+# CONFIG_IEEE1394 is not set\n"
+ "+# CONFIG_I2O is not set\n"
+ "+CONFIG_NETDEVICES=y\n"
+ "+# CONFIG_DUMMY is not set\n"
+ "+# CONFIG_BONDING is not set\n"
+ "+# CONFIG_MACVLAN is not set\n"
+ "+# CONFIG_EQUALIZER is not set\n"
+ "+# CONFIG_TUN is not set\n"
+ "+# CONFIG_VETH is not set\n"
+ "+# CONFIG_ARCNET is not set\n"
+ "+# CONFIG_NET_ETHERNET is not set\n"
+ "+CONFIG_MII=y\n"
+ "+CONFIG_NETDEV_1000=y\n"
+ "+# CONFIG_ACENIC is not set\n"
+ "+# CONFIG_DL2K is not set\n"
+ "+# CONFIG_E1000 is not set\n"
+ "+# CONFIG_E1000E is not set\n"
+ "+# CONFIG_IP1000 is not set\n"
+ "+# CONFIG_IGB is not set\n"
+ "+# CONFIG_NS83820 is not set\n"
+ "+# CONFIG_HAMACHI is not set\n"
+ "+# CONFIG_YELLOWFIN is not set\n"
+ "+CONFIG_R8169=y\n"
+ "+# CONFIG_SIS190 is not set\n"
+ "+# CONFIG_SKGE is not set\n"
+ "+# CONFIG_SKY2 is not set\n"
+ "+# CONFIG_VIA_VELOCITY is not set\n"
+ "+# CONFIG_TIGON3 is not set\n"
+ "+# CONFIG_BNX2 is not set\n"
+ "+# CONFIG_QLA3XXX is not set\n"
+ "+# CONFIG_ATL1 is not set\n"
+ "+# CONFIG_ATL1E is not set\n"
+ "+# CONFIG_ATL1C is not set\n"
+ "+# CONFIG_JME is not set\n"
+ "+# CONFIG_NETDEV_10000 is not set\n"
+ "+# CONFIG_TR is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Wireless LAN\n"
+ "+#\n"
+ "+# CONFIG_WLAN_PRE80211 is not set\n"
+ "+# CONFIG_WLAN_80211 is not set\n"
+ "+# CONFIG_IWLWIFI_LEDS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Enable WiMAX (Networking options) to see the WiMAX drivers\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# USB Network Adapters\n"
+ "+#\n"
+ "+# CONFIG_USB_CATC is not set\n"
+ "+# CONFIG_USB_KAWETH is not set\n"
+ "+# CONFIG_USB_PEGASUS is not set\n"
+ "+# CONFIG_USB_RTL8150 is not set\n"
+ "+# CONFIG_USB_USBNET is not set\n"
+ "+# CONFIG_WAN is not set\n"
+ "+# CONFIG_FDDI is not set\n"
+ "+# CONFIG_HIPPI is not set\n"
+ "+# CONFIG_PPP is not set\n"
+ "+# CONFIG_SLIP is not set\n"
+ "+# CONFIG_NETCONSOLE is not set\n"
+ "+# CONFIG_NETPOLL is not set\n"
+ "+# CONFIG_NET_POLL_CONTROLLER is not set\n"
+ "+# CONFIG_ISDN is not set\n"
+ "+# CONFIG_PHONE is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Input device support\n"
+ "+#\n"
+ "+CONFIG_INPUT=y\n"
+ "+# CONFIG_INPUT_FF_MEMLESS is not set\n"
+ "+# CONFIG_INPUT_POLLDEV is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Userland interfaces\n"
+ "+#\n"
+ "+# CONFIG_INPUT_MOUSEDEV is not set\n"
+ "+# CONFIG_INPUT_JOYDEV is not set\n"
+ "+# CONFIG_INPUT_EVDEV is not set\n"
+ "+# CONFIG_INPUT_EVBUG is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Input Device Drivers\n"
+ "+#\n"
+ "+CONFIG_INPUT_KEYBOARD=y\n"
+ "+CONFIG_KEYBOARD_ATKBD=y\n"
+ "+# CONFIG_KEYBOARD_SUNKBD is not set\n"
+ "+# CONFIG_KEYBOARD_LKKBD is not set\n"
+ "+# CONFIG_KEYBOARD_XTKBD is not set\n"
+ "+# CONFIG_KEYBOARD_NEWTON is not set\n"
+ "+# CONFIG_KEYBOARD_STOWAWAY is not set\n"
+ "+CONFIG_INPUT_MOUSE=y\n"
+ "+CONFIG_MOUSE_PS2=y\n"
+ "+CONFIG_MOUSE_PS2_ALPS=y\n"
+ "+CONFIG_MOUSE_PS2_LOGIPS2PP=y\n"
+ "+CONFIG_MOUSE_PS2_SYNAPTICS=y\n"
+ "+CONFIG_MOUSE_PS2_TRACKPOINT=y\n"
+ "+# CONFIG_MOUSE_PS2_ELANTECH is not set\n"
+ "+# CONFIG_MOUSE_PS2_TOUCHKIT is not set\n"
+ "+# CONFIG_MOUSE_SERIAL is not set\n"
+ "+# CONFIG_MOUSE_APPLETOUCH is not set\n"
+ "+# CONFIG_MOUSE_BCM5974 is not set\n"
+ "+# CONFIG_MOUSE_INPORT is not set\n"
+ "+# CONFIG_MOUSE_LOGIBM is not set\n"
+ "+# CONFIG_MOUSE_PC110PAD is not set\n"
+ "+# CONFIG_MOUSE_VSXXXAA is not set\n"
+ "+# CONFIG_INPUT_JOYSTICK is not set\n"
+ "+# CONFIG_INPUT_TABLET is not set\n"
+ "+# CONFIG_INPUT_TOUCHSCREEN is not set\n"
+ "+# CONFIG_INPUT_MISC is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Hardware I/O ports\n"
+ "+#\n"
+ "+CONFIG_SERIO=y\n"
+ "+# CONFIG_SERIO_I8042 is not set\n"
+ "+CONFIG_SERIO_SERPORT=y\n"
+ "+# CONFIG_SERIO_PCIPS2 is not set\n"
+ "+CONFIG_SERIO_LIBPS2=y\n"
+ "+# CONFIG_SERIO_RAW is not set\n"
+ "+# CONFIG_GAMEPORT is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Character devices\n"
+ "+#\n"
+ "+CONFIG_VT=y\n"
+ "+CONFIG_CONSOLE_TRANSLATIONS=y\n"
+ "+CONFIG_VT_CONSOLE=y\n"
+ "+CONFIG_HW_CONSOLE=y\n"
+ "+# CONFIG_VT_HW_CONSOLE_BINDING is not set\n"
+ "+# CONFIG_DEVKMEM is not set\n"
+ "+CONFIG_SERIAL_NONSTANDARD=y\n"
+ "+# CONFIG_COMPUTONE is not set\n"
+ "+# CONFIG_ROCKETPORT is not set\n"
+ "+# CONFIG_CYCLADES is not set\n"
+ "+# CONFIG_DIGIEPCA is not set\n"
+ "+# CONFIG_MOXA_INTELLIO is not set\n"
+ "+# CONFIG_MOXA_SMARTIO is not set\n"
+ "+# CONFIG_ISI is not set\n"
+ "+# CONFIG_SYNCLINKMP is not set\n"
+ "+# CONFIG_SYNCLINK_GT is not set\n"
+ "+# CONFIG_N_HDLC is not set\n"
+ "+# CONFIG_RISCOM8 is not set\n"
+ "+# CONFIG_SPECIALIX is not set\n"
+ "+# CONFIG_SX is not set\n"
+ "+# CONFIG_RIO is not set\n"
+ "+# CONFIG_STALDRV is not set\n"
+ "+# CONFIG_NOZOMI is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Serial drivers\n"
+ "+#\n"
+ "+CONFIG_SERIAL_8250=y\n"
+ "+CONFIG_SERIAL_8250_CONSOLE=y\n"
+ "+CONFIG_SERIAL_8250_PCI=y\n"
+ "+CONFIG_SERIAL_8250_NR_UARTS=16\n"
+ "+CONFIG_SERIAL_8250_RUNTIME_UARTS=4\n"
+ "+# CONFIG_SERIAL_8250_EXTENDED is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Non-8250 serial port support\n"
+ "+#\n"
+ "+CONFIG_SERIAL_CORE=y\n"
+ "+CONFIG_SERIAL_CORE_CONSOLE=y\n"
+ "+# CONFIG_SERIAL_JSM is not set\n"
+ "+CONFIG_UNIX98_PTYS=y\n"
+ "+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set\n"
+ "+CONFIG_LEGACY_PTYS=y\n"
+ "+CONFIG_LEGACY_PTY_COUNT=16\n"
+ "+# CONFIG_IPMI_HANDLER is not set\n"
+ "+# CONFIG_HW_RANDOM is not set\n"
+ "+# CONFIG_RTC is not set\n"
+ "+# CONFIG_DTLK is not set\n"
+ "+# CONFIG_R3964 is not set\n"
+ "+# CONFIG_APPLICOM is not set\n"
+ "+# CONFIG_RAW_DRIVER is not set\n"
+ "+# CONFIG_TCG_TPM is not set\n"
+ "+CONFIG_DEVPORT=y\n"
+ "+# CONFIG_I2C is not set\n"
+ "+# CONFIG_SPI is not set\n"
+ "+# CONFIG_W1 is not set\n"
+ "+# CONFIG_POWER_SUPPLY is not set\n"
+ "+# CONFIG_HWMON is not set\n"
+ "+# CONFIG_THERMAL is not set\n"
+ "+# CONFIG_THERMAL_HWMON is not set\n"
+ "+# CONFIG_WATCHDOG is not set\n"
+ "+CONFIG_SSB_POSSIBLE=y\n"
+ "+\n"
+ "+#\n"
+ "+# Sonics Silicon Backplane\n"
+ "+#\n"
+ "+# CONFIG_SSB is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Multifunction device drivers\n"
+ "+#\n"
+ "+# CONFIG_MFD_CORE is not set\n"
+ "+# CONFIG_MFD_SM501 is not set\n"
+ "+# CONFIG_HTC_PASIC3 is not set\n"
+ "+# CONFIG_MFD_TMIO is not set\n"
+ "+# CONFIG_REGULATOR is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Multimedia devices\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# Multimedia core support\n"
+ "+#\n"
+ "+# CONFIG_VIDEO_DEV is not set\n"
+ "+# CONFIG_DVB_CORE is not set\n"
+ "+# CONFIG_VIDEO_MEDIA is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Multimedia drivers\n"
+ "+#\n"
+ "+# CONFIG_DAB is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Graphics support\n"
+ "+#\n"
+ "+# CONFIG_DRM is not set\n"
+ "+CONFIG_VGASTATE=y\n"
+ "+# CONFIG_VIDEO_OUTPUT_CONTROL is not set\n"
+ "+CONFIG_FB=y\n"
+ "+CONFIG_FIRMWARE_EDID=y\n"
+ "+# CONFIG_FB_DDC is not set\n"
+ "+CONFIG_FB_BOOT_VESA_SUPPORT=y\n"
+ "+CONFIG_FB_CFB_FILLRECT=y\n"
+ "+CONFIG_FB_CFB_COPYAREA=y\n"
+ "+CONFIG_FB_CFB_IMAGEBLIT=y\n"
+ "+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set\n"
+ "+CONFIG_FB_SYS_FILLRECT=y\n"
+ "+CONFIG_FB_SYS_COPYAREA=y\n"
+ "+CONFIG_FB_SYS_IMAGEBLIT=y\n"
+ "+# CONFIG_FB_FOREIGN_ENDIAN is not set\n"
+ "+CONFIG_FB_SYS_FOPS=y\n"
+ "+# CONFIG_FB_SVGALIB is not set\n"
+ "+# CONFIG_FB_MACMODES is not set\n"
+ "+# CONFIG_FB_BACKLIGHT is not set\n"
+ "+CONFIG_FB_MODE_HELPERS=y\n"
+ "+CONFIG_FB_TILEBLITTING=y\n"
+ "+\n"
+ "+#\n"
+ "+# Frame buffer hardware drivers\n"
+ "+#\n"
+ "+# CONFIG_FB_CIRRUS is not set\n"
+ "+# CONFIG_FB_PM2 is not set\n"
+ "+# CONFIG_FB_CYBER2000 is not set\n"
+ "+# CONFIG_FB_ASILIANT is not set\n"
+ "+# CONFIG_FB_IMSTT is not set\n"
+ "+# CONFIG_FB_S1D13XXX is not set\n"
+ "+# CONFIG_FB_NVIDIA is not set\n"
+ "+CONFIG_FB_RIVA=y\n"
+ "+# CONFIG_FB_RIVA_I2C is not set\n"
+ "+# CONFIG_FB_RIVA_DEBUG is not set\n"
+ "+# CONFIG_FB_RIVA_BACKLIGHT is not set\n"
+ "+# CONFIG_FB_MATROX is not set\n"
+ "+# CONFIG_FB_RADEON is not set\n"
+ "+# CONFIG_FB_ATY128 is not set\n"
+ "+# CONFIG_FB_ATY is not set\n"
+ "+# CONFIG_FB_S3 is not set\n"
+ "+# CONFIG_FB_SAVAGE is not set\n"
+ "+CONFIG_FB_SIS=y\n"
+ "+CONFIG_FB_SIS_300=y\n"
+ "+CONFIG_FB_SIS_315=y\n"
+ "+# CONFIG_FB_VIA is not set\n"
+ "+# CONFIG_FB_NEOMAGIC is not set\n"
+ "+# CONFIG_FB_KYRO is not set\n"
+ "+# CONFIG_FB_3DFX is not set\n"
+ "+# CONFIG_FB_VOODOO1 is not set\n"
+ "+# CONFIG_FB_VT8623 is not set\n"
+ "+# CONFIG_FB_TRIDENT is not set\n"
+ "+# CONFIG_FB_ARK is not set\n"
+ "+# CONFIG_FB_PM3 is not set\n"
+ "+# CONFIG_FB_CARMINE is not set\n"
+ "+# CONFIG_FB_SILICONMOTION is not set\n"
+ "+CONFIG_FB_VIRTUAL=y\n"
+ "+# CONFIG_FB_METRONOME is not set\n"
+ "+# CONFIG_FB_MB862XX is not set\n"
+ "+CONFIG_BACKLIGHT_LCD_SUPPORT=y\n"
+ "+# CONFIG_LCD_CLASS_DEVICE is not set\n"
+ "+CONFIG_BACKLIGHT_CLASS_DEVICE=y\n"
+ "+CONFIG_BACKLIGHT_GENERIC=y\n"
+ "+\n"
+ "+#\n"
+ "+# Display device support\n"
+ "+#\n"
+ "+# CONFIG_DISPLAY_SUPPORT is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Console display driver support\n"
+ "+#\n"
+ "+# CONFIG_VGA_CONSOLE is not set\n"
+ "+# CONFIG_MDA_CONSOLE is not set\n"
+ "+CONFIG_DUMMY_CONSOLE=y\n"
+ "+CONFIG_FRAMEBUFFER_CONSOLE=y\n"
+ "+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set\n"
+ "+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y\n"
+ "+# CONFIG_FONTS is not set\n"
+ "+CONFIG_FONT_8x8=y\n"
+ "+CONFIG_FONT_8x16=y\n"
+ "+# CONFIG_LOGO is not set\n"
+ "+# CONFIG_SOUND is not set\n"
+ "+CONFIG_HID_SUPPORT=y\n"
+ "+CONFIG_HID=y\n"
+ "+# CONFIG_HID_DEBUG is not set\n"
+ "+# CONFIG_HIDRAW is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB Input Devices\n"
+ "+#\n"
+ "+CONFIG_USB_HID=y\n"
+ "+# CONFIG_HID_PID is not set\n"
+ "+# CONFIG_USB_HIDDEV is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Special HID drivers\n"
+ "+#\n"
+ "+CONFIG_HID_COMPAT=y\n"
+ "+# CONFIG_HID_A4TECH is not set\n"
+ "+# CONFIG_HID_APPLE is not set\n"
+ "+# CONFIG_HID_BELKIN is not set\n"
+ "+# CONFIG_HID_CHERRY is not set\n"
+ "+# CONFIG_HID_CHICONY is not set\n"
+ "+# CONFIG_HID_CYPRESS is not set\n"
+ "+# CONFIG_HID_EZKEY is not set\n"
+ "+# CONFIG_HID_GYRATION is not set\n"
+ "+# CONFIG_HID_LOGITECH is not set\n"
+ "+# CONFIG_HID_MICROSOFT is not set\n"
+ "+# CONFIG_HID_MONTEREY is not set\n"
+ "+# CONFIG_HID_NTRIG is not set\n"
+ "+# CONFIG_HID_PANTHERLORD is not set\n"
+ "+# CONFIG_HID_PETALYNX is not set\n"
+ "+# CONFIG_HID_SAMSUNG is not set\n"
+ "+# CONFIG_HID_SONY is not set\n"
+ "+# CONFIG_HID_SUNPLUS is not set\n"
+ "+# CONFIG_GREENASIA_FF is not set\n"
+ "+# CONFIG_HID_TOPSEED is not set\n"
+ "+# CONFIG_THRUSTMASTER_FF is not set\n"
+ "+# CONFIG_ZEROPLUS_FF is not set\n"
+ "+CONFIG_USB_SUPPORT=y\n"
+ "+CONFIG_USB_ARCH_HAS_HCD=y\n"
+ "+CONFIG_USB_ARCH_HAS_OHCI=y\n"
+ "+CONFIG_USB_ARCH_HAS_EHCI=y\n"
+ "+CONFIG_USB=y\n"
+ "+# CONFIG_USB_DEBUG is not set\n"
+ "+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Miscellaneous USB options\n"
+ "+#\n"
+ "+CONFIG_USB_DEVICEFS=y\n"
+ "+CONFIG_USB_DEVICE_CLASS=y\n"
+ "+# CONFIG_USB_DYNAMIC_MINORS is not set\n"
+ "+# CONFIG_USB_OTG is not set\n"
+ "+# CONFIG_USB_OTG_WHITELIST is not set\n"
+ "+# CONFIG_USB_OTG_BLACKLIST_HUB is not set\n"
+ "+# CONFIG_USB_MON is not set\n"
+ "+# CONFIG_USB_WUSB is not set\n"
+ "+# CONFIG_USB_WUSB_CBAF is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB Host Controller Drivers\n"
+ "+#\n"
+ "+# CONFIG_USB_C67X00_HCD is not set\n"
+ "+CONFIG_USB_EHCI_HCD=y\n"
+ "+CONFIG_USB_EHCI_ROOT_HUB_TT=y\n"
+ "+# CONFIG_USB_EHCI_TT_NEWSCHED is not set\n"
+ "+# CONFIG_USB_OXU210HP_HCD is not set\n"
+ "+# CONFIG_USB_ISP116X_HCD is not set\n"
+ "+# CONFIG_USB_ISP1760_HCD is not set\n"
+ "+CONFIG_USB_OHCI_HCD=y\n"
+ "+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set\n"
+ "+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set\n"
+ "+CONFIG_USB_OHCI_LITTLE_ENDIAN=y\n"
+ "+# CONFIG_USB_UHCI_HCD is not set\n"
+ "+# CONFIG_USB_SL811_HCD is not set\n"
+ "+# CONFIG_USB_R8A66597_HCD is not set\n"
+ "+# CONFIG_USB_HWA_HCD is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB Device Class drivers\n"
+ "+#\n"
+ "+# CONFIG_USB_ACM is not set\n"
+ "+# CONFIG_USB_PRINTER is not set\n"
+ "+# CONFIG_USB_WDM is not set\n"
+ "+# CONFIG_USB_TMC is not set\n"
+ "+\n"
+ "+#\n"
+ "+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;\n"
+ "+#\n"
+ "+\n"
+ "+#\n"
+ "+# see USB_STORAGE Help for more information\n"
+ "+#\n"
+ "+# CONFIG_USB_LIBUSUAL is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB Imaging devices\n"
+ "+#\n"
+ "+# CONFIG_USB_MDC800 is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB port drivers\n"
+ "+#\n"
+ "+# CONFIG_USB_SERIAL is not set\n"
+ "+\n"
+ "+#\n"
+ "+# USB Miscellaneous drivers\n"
+ "+#\n"
+ "+# CONFIG_USB_EMI62 is not set\n"
+ "+# CONFIG_USB_EMI26 is not set\n"
+ "+# CONFIG_USB_ADUTUX is not set\n"
+ "+# CONFIG_USB_SEVSEG is not set\n"
+ "+# CONFIG_USB_RIO500 is not set\n"
+ "+# CONFIG_USB_LEGOTOWER is not set\n"
+ "+# CONFIG_USB_LCD is not set\n"
+ "+# CONFIG_USB_BERRY_CHARGE is not set\n"
+ "+# CONFIG_USB_LED is not set\n"
+ "+# CONFIG_USB_CYPRESS_CY7C63 is not set\n"
+ "+# CONFIG_USB_CYTHERM is not set\n"
+ "+# CONFIG_USB_PHIDGET is not set\n"
+ "+# CONFIG_USB_IDMOUSE is not set\n"
+ "+# CONFIG_USB_FTDI_ELAN is not set\n"
+ "+# CONFIG_USB_APPLEDISPLAY is not set\n"
+ "+# CONFIG_USB_SISUSBVGA is not set\n"
+ "+# CONFIG_USB_LD is not set\n"
+ "+# CONFIG_USB_TRANCEVIBRATOR is not set\n"
+ "+# CONFIG_USB_IOWARRIOR is not set\n"
+ "+# CONFIG_USB_TEST is not set\n"
+ "+# CONFIG_USB_ISIGHTFW is not set\n"
+ "+# CONFIG_USB_VST is not set\n"
+ "+\n"
+ "+#\n"
+ "+# OTG and related infrastructure\n"
+ "+#\n"
+ "+# CONFIG_UWB is not set\n"
+ "+# CONFIG_MMC is not set\n"
+ "+# CONFIG_MEMSTICK is not set\n"
+ "+# CONFIG_NEW_LEDS is not set\n"
+ "+# CONFIG_ACCESSIBILITY is not set\n"
+ "+# CONFIG_RTC_CLASS is not set\n"
+ "+# CONFIG_DMADEVICES is not set\n"
+ "+# CONFIG_UIO is not set\n"
+ "+# CONFIG_STAGING is not set\n"
+ "+\n"
+ "+#\n"
+ "+# File systems\n"
+ "+#\n"
+ "+# CONFIG_EXT2_FS is not set\n"
+ "+CONFIG_EXT3_FS=y\n"
+ "+# CONFIG_EXT3_FS_XATTR is not set\n"
+ "+# CONFIG_EXT4_FS is not set\n"
+ "+CONFIG_JBD=y\n"
+ "+# CONFIG_REISERFS_FS is not set\n"
+ "+# CONFIG_JFS_FS is not set\n"
+ "+# CONFIG_FS_POSIX_ACL is not set\n"
+ "+CONFIG_FILE_LOCKING=y\n"
+ "+# CONFIG_XFS_FS is not set\n"
+ "+# CONFIG_GFS2_FS is not set\n"
+ "+# CONFIG_BTRFS_FS is not set\n"
+ "+# CONFIG_DNOTIFY is not set\n"
+ "+# CONFIG_INOTIFY is not set\n"
+ "+# CONFIG_QUOTA is not set\n"
+ "+# CONFIG_AUTOFS_FS is not set\n"
+ "+# CONFIG_AUTOFS4_FS is not set\n"
+ "+# CONFIG_FUSE_FS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# CD-ROM/DVD Filesystems\n"
+ "+#\n"
+ "+# CONFIG_ISO9660_FS is not set\n"
+ "+# CONFIG_UDF_FS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# DOS/FAT/NT Filesystems\n"
+ "+#\n"
+ "+# CONFIG_MSDOS_FS is not set\n"
+ "+# CONFIG_VFAT_FS is not set\n"
+ "+# CONFIG_NTFS_FS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Pseudo filesystems\n"
+ "+#\n"
+ "+CONFIG_PROC_FS=y\n"
+ "+CONFIG_PROC_KCORE=y\n"
+ "+CONFIG_PROC_SYSCTL=y\n"
+ "+CONFIG_PROC_PAGE_MONITOR=y\n"
+ "+# CONFIG_SYSFS is not set\n"
+ "+# CONFIG_TMPFS is not set\n"
+ "+# CONFIG_HUGETLB_PAGE is not set\n"
+ "+# CONFIG_MISC_FILESYSTEMS is not set\n"
+ "+# CONFIG_NETWORK_FILESYSTEMS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Partition Types\n"
+ "+#\n"
+ "+# CONFIG_PARTITION_ADVANCED is not set\n"
+ "+CONFIG_MSDOS_PARTITION=y\n"
+ "+# CONFIG_NLS is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Kernel hacking\n"
+ "+#\n"
+ "+CONFIG_TRACE_IRQFLAGS_SUPPORT=y\n"
+ "+# CONFIG_PRINTK_TIME is not set\n"
+ "+CONFIG_ALLOW_WARNINGS=y\n"
+ "+# CONFIG_ENABLE_WARN_DEPRECATED is not set\n"
+ "+# CONFIG_ENABLE_MUST_CHECK is not set\n"
+ "+CONFIG_FRAME_WARN=1024\n"
+ "+# CONFIG_MAGIC_SYSRQ is not set\n"
+ "+# CONFIG_UNUSED_SYMBOLS is not set\n"
+ "+# CONFIG_HEADERS_CHECK is not set\n"
+ "+# CONFIG_DEBUG_SECTION_MISMATCH is not set\n"
+ "+# CONFIG_DEBUG_KERNEL is not set\n"
+ "+# CONFIG_DEBUG_MEMORY_INIT is not set\n"
+ "+CONFIG_TRACING_SUPPORT=y\n"
+ "+\n"
+ "+#\n"
+ "+# Tracers\n"
+ "+#\n"
+ "+# CONFIG_IRQSOFF_TRACER is not set\n"
+ "+# CONFIG_PREEMPT_TRACER is not set\n"
+ "+# CONFIG_SCHED_TRACER is not set\n"
+ "+# CONFIG_CONTEXT_SWITCH_TRACER is not set\n"
+ "+# CONFIG_EVENT_TRACER is not set\n"
+ "+# CONFIG_BOOT_TRACER is not set\n"
+ "+# CONFIG_TRACE_BRANCH_PROFILING is not set\n"
+ "+# CONFIG_KMEMTRACE is not set\n"
+ "+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set\n"
+ "+# CONFIG_SAMPLES is not set\n"
+ "+CONFIG_HAVE_ARCH_KGDB=y\n"
+ "+CONFIG_CMDLINE=\"\"\n"
+ "+\n"
+ "+#\n"
+ "+# Security options\n"
+ "+#\n"
+ "+# CONFIG_KEYS is not set\n"
+ "+# CONFIG_SECURITYFS is not set\n"
+ "+# CONFIG_SECURITY_FILE_CAPABILITIES is not set\n"
+ "+# CONFIG_CRYPTO is not set\n"
+ "+# CONFIG_BINARY_PRINTF is not set\n"
+ "+\n"
+ "+#\n"
+ "+# Library routines\n"
+ "+#\n"
+ "+CONFIG_BITREVERSE=y\n"
+ "+CONFIG_GENERIC_FIND_LAST_BIT=y\n"
+ "+# CONFIG_CRC_CCITT is not set\n"
+ "+# CONFIG_CRC16 is not set\n"
+ "+# CONFIG_CRC_T10DIF is not set\n"
+ "+# CONFIG_CRC_ITU_T is not set\n"
+ "+CONFIG_CRC32=y\n"
+ "+# CONFIG_CRC7 is not set\n"
+ "+# CONFIG_LIBCRC32C is not set\n"
+ "+CONFIG_HAS_IOMEM=y\n"
+ "+CONFIG_HAS_IOPORT=y\n"
+ "+CONFIG_HAS_DMA=y\n"
+ "diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c\n"
+ "index d6a30ce..cfff67a 100644\n"
+ "--- a/drivers/input/misc/pcspkr.c\n"
+ "+++ b/drivers/input/misc/pcspkr.c\n"
+ "@@ -29,7 +29,7 @@ MODULE_ALIAS(\"platform:pcspkr\");\n"
+ " #include <asm/i8253.h>\n"
+ " #else\n"
+ " #include <asm/8253pit.h>\n"
+ "-static DEFINE_SPINLOCK(i8253_lock);\n"
+ "+static DEFINE_RAW_SPINLOCK(i8253_lock);\n"
+ " #endif\n"
+ " \n"
+ " static int pcspkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)\n"
+ "diff --git a/kernel/sched.c b/kernel/sched.c\n"
+ "index 61fddc9..4b2c522 100644\n"
+ "--- a/kernel/sched.c\n"
+ "+++ b/kernel/sched.c\n"
+ "@@ -963,7 +963,7 @@ static inline u64 global_rt_runtime(void)\n"
+ " #ifndef prepare_arch_switch\n"
+ " # define prepare_arch_switch(next)\tdo { } while (0)\n"
+ " #endif\n"
+ "-#ifndef finish_arch_switch\n"
+ "+#ifndef _finish_arch_switch\n"
+ " # define _finish_arch_switch(prev)\tdo { } while (0)\n"
+ " #endif\n"
+ " \n"
+ "diff --git a/sound/drivers/pcsp/pcsp.h b/sound/drivers/pcsp/pcsp.h\n"
+ "index cdef266..39dddc2 100644\n"
+ "--- a/sound/drivers/pcsp/pcsp.h\n"
+ "+++ b/sound/drivers/pcsp/pcsp.h\n"
+ "@@ -15,7 +15,7 @@\n"
+ " #include <asm/i8253.h>\n"
+ " #else\n"
+ " #include <asm/8253pit.h>\n"
+ "-static DEFINE_SPINLOCK(i8253_lock);\n"
+ "+static DEFINE_RAW_SPINLOCK(i8253_lock);\n"
+ " #endif\n"
+ " \n"
+ " #define PCSP_SOUND_VERSION 0x400\t/* read 4.00 */"
 
-e2bd08c25c1e6b0341f3c52e9344244626737eceb6c75336b88ddc642e1547d5
+f235bc54a85d25c311f66f517bb4cd609f6acdad54ffad8c3e55b60beb3f0e95

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.