[PATCH -rt 2/2] arm update

From: Daniel Walker
Date: Sun May 14 2006 - 11:56:44 EST



- Fixed arm mcount/arm_return_addr so they aren't under OABI_COMPAT ifdefs .
- adds a new NR_syscalls macro, converts the old one into __NR_syscalls for
calculating the table padding .
- removes old semaphore __MUTEX_INITIALIZER()
- depends blocker on X86
- updates clockfw_lock to a raw_spinlock_t


Looks like arm hasn't been compiled in a while .. Needs an updated for
generic irqs too. There's still some struct semaphore usage , shouldn't
they be either compat_semaphore or mutex types now ?

Signed-Off-By: Daniel Walker <dwalker@xxxxxxxxxx>

Index: linux-2.6.16/include/linux/plist.h
===================================================================
--- linux-2.6.16.orig/include/linux/plist.h
+++ linux-2.6.16/include/linux/plist.h
@@ -73,6 +73,7 @@
#ifndef _LINUX_PLIST_H_
#define _LINUX_PLIST_H_

+#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/spinlock_types.h>

Index: linux-2.6.16/include/asm-arm/semaphore.h
===================================================================
--- linux-2.6.16.orig/include/asm-arm/semaphore.h
+++ linux-2.6.16/include/asm-arm/semaphore.h
@@ -19,7 +19,6 @@
*/
#ifndef CONFIG_PREEMPT_RT
# define semaphore compat_semaphore
-#define __MUTEX_INITIALIZER(name) __COMPAT_MUTEX_INITIALIZER(name)
#endif

#include <asm/atomic.h>
Index: linux-2.6.16/drivers/char/Kconfig
===================================================================
--- linux-2.6.16.orig/drivers/char/Kconfig
+++ linux-2.6.16/drivers/char/Kconfig
@@ -730,6 +730,7 @@ config RTC_HISTOGRAM

config BLOCKER
tristate "Priority Inheritance Debugging (Blocker) Device Support"
+ depends on X86
default y
---help---
If you say Y here then a device will be created that the userspace
Index: linux-2.6.16/include/asm-arm/arch/clock.h
===================================================================
--- linux-2.6.16.orig/include/asm-arm/arch/clock.h
+++ linux-2.6.16/include/asm-arm/arch/clock.h
@@ -48,7 +48,7 @@ struct clk_functions {

extern unsigned int mpurate;
extern struct list_head clocks;
-extern spinlock_t clockfw_lock;
+extern raw_spinlock_t clockfw_lock;

extern int clk_init(struct clk_functions * custom_clocks);
extern int clk_register(struct clk *clk);
Index: linux-2.6.16/arch/arm/kernel/calls.S
===================================================================
--- linux-2.6.16.orig/arch/arm/kernel/calls.S
+++ linux-2.6.16/arch/arm/kernel/calls.S
@@ -332,7 +332,7 @@
/* 320 */ CALL(sys_get_mempolicy)
CALL(sys_set_mempolicy)
#ifndef syscalls_counted
-.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
+.equ syscalls_padding, ((__NR_syscalls + 3) & ~3) - __NR_syscalls
#define syscalls_counted
#endif
.rept syscalls_padding
Index: linux-2.6.16/arch/arm/kernel/entry-common.S
===================================================================
--- linux-2.6.16.orig/arch/arm/kernel/entry-common.S
+++ linux-2.6.16/arch/arm/kernel/entry-common.S
@@ -90,8 +90,8 @@ ENTRY(ret_from_fork)
b ret_slow_syscall


- .equ NR_syscalls,0
-#define CALL(x) .equ NR_syscalls,NR_syscalls+1
+ .equ __NR_syscalls,0 @ Used to determine syscall table padding.
+#define CALL(x) .equ __NR_syscalls,__NR_syscalls+1
#include "calls.S"
#undef CALL
#define CALL(x) .long x
@@ -205,7 +205,7 @@ ENTRY(vector_swi)
tst ip, #_TIF_SYSCALL_TRACE @ are we tracing syscalls?
bne __sys_trace

- cmp scno, #NR_syscalls @ check upper syscall limit
+ cmp scno, #__NR_syscalls @ check upper syscall limit
adr lr, ret_fast_syscall @ return address
ldrcc pc, [tbl, scno, lsl #2] @ call sys_* routine

@@ -229,7 +229,7 @@ __sys_trace:
adr lr, __sys_trace_return @ return address
mov scno, r0 @ syscall number (possibly new)
add r1, sp, #S_R0 + S_OFF @ pointer to regs
- cmp scno, #NR_syscalls @ check upper syscall limit
+ cmp scno, #__NR_syscalls @ check upper syscall limit
ldmccia r1, {r0 - r3} @ have to reload r0 - r3
ldrcc pc, [tbl, scno, lsl #2] @ call sys_* routine
b 2b
@@ -276,7 +276,7 @@ ENTRY(sys_call_table)
sys_syscall:
eor scno, r0, #__NR_OABI_SYSCALL_BASE
cmp scno, #__NR_syscall - __NR_SYSCALL_BASE
- cmpne scno, #NR_syscalls @ check range
+ cmpne scno, #__NR_syscalls @ check range
stmloia sp, {r5, r6} @ shuffle args
movlo r0, r1
movlo r1, r2
@@ -391,6 +391,7 @@ ENTRY(sys_oabi_call_table)
#include "calls.S"
#undef ABI
#undef OBSOLETE
+#endif

#ifdef CONFIG_FRAME_POINTER

@@ -499,5 +500,3 @@ arm_return_addr:

#endif

-#endif
-
Index: linux-2.6.16/include/asm-arm/unistd.h
===================================================================
--- linux-2.6.16.orig/include/asm-arm/unistd.h
+++ linux-2.6.16/include/asm-arm/unistd.h
@@ -361,6 +361,9 @@
#define __NR_get_mempolicy (__NR_SYSCALL_BASE+320)
#define __NR_set_mempolicy (__NR_SYSCALL_BASE+321)

+// FIXME: check this number ...
+#define NR_syscalls 322
+
/*
* The following SWIs are ARM private.
*/
@@ -534,9 +537,6 @@ type name(type1 arg1, type2 arg2, type3
#define __ARCH_WANT_SYS_SOCKETCALL
#endif

-// FIXME: check this number ...
-#define NR_syscalls 328
-
#endif

#ifdef __KERNEL_SYSCALLS__
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/