|
From: James S. <jsi...@us...> - 2002-03-18 19:38:06
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv1539/linux/arch/arm/kernel
Modified Files:
armksyms.c setup.c traps.c
Log Message:
Synced to 2.5.6
Index: armksyms.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel/armksyms.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- armksyms.c 15 Mar 2002 18:28:11 -0000 1.1
+++ armksyms.c 18 Mar 2002 19:29:08 -0000 1.2
@@ -20,6 +20,7 @@
#include <linux/interrupt.h>
#include <linux/pm.h>
#include <linux/tty.h>
+#include <linux/smp_lock.h>
#include <asm/byteorder.h>
#include <asm/elf.h>
@@ -118,6 +119,7 @@
EXPORT_SYMBOL(__readwrite_bug);
EXPORT_SYMBOL(enable_irq);
EXPORT_SYMBOL(disable_irq);
+EXPORT_SYMBOL(set_irq_type);
EXPORT_SYMBOL(pm_idle);
EXPORT_SYMBOL(pm_power_off);
@@ -162,10 +164,6 @@
EXPORT_SYMBOL(__bus_to_virt);
#endif
-#ifndef CONFIG_NO_PGT_CACHE
-EXPORT_SYMBOL(quicklists);
-#endif
-
/* string / mem functions */
EXPORT_SYMBOL_NOVERS(strcpy);
EXPORT_SYMBOL_NOVERS(strncpy);
@@ -268,3 +266,7 @@
EXPORT_SYMBOL_NOVERS(__up_wakeup);
EXPORT_SYMBOL(get_wchan);
+
+#ifdef CONFIG_PREEMPT
+EXPORT_SYMBOL(kernel_flag);
+#endif
Index: setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel/setup.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- setup.c 20 Jan 2002 03:54:44 -0000 1.7
+++ setup.c 18 Mar 2002 19:29:08 -0000 1.8
@@ -37,6 +37,10 @@
#define CONFIG_CMDLINE ""
#endif
+#ifdef CONFIG_PREEMPT
+spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+#endif
+
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
char fpe_type[8];
@@ -68,6 +72,9 @@
#ifdef MULTI_CPU
struct processor processor;
#endif
+#ifdef MULTI_TLB
+struct cpu_tlb_fns cpu_tlb;
+#endif
char elf_platform[ELF_PLATFORM_SIZE];
char saved_command_line[COMMAND_LINE_SIZE];
@@ -174,7 +181,7 @@
static inline void dump_cache(const char *prefix, unsigned int cache)
{
- unsigned int mult = 2 + CACHE_M(cache) ? 1 : 0;
+ unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0);
printk("%s size %dK associativity %d line length %d sets %d\n",
prefix,
@@ -236,6 +243,9 @@
#ifdef MULTI_CPU
processor = *list->proc;
#endif
+#ifdef MULTI_TLB
+ cpu_tlb = *list->tlb;
+#endif
printk("Processor: %s %s revision %d\n",
proc_info.manufacturer, proc_info.cpu_name,
@@ -651,7 +661,7 @@
static void
c_show_cache(struct seq_file *m, const char *type, unsigned int cache)
{
- unsigned int mult = 2 + CACHE_M(cache) ? 1 : 0;
+ unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0);
seq_printf(m, "%s size\t\t: %d\n"
"%s assoc\t\t: %d\n"
@@ -724,7 +734,7 @@
cache_types[CACHE_TYPE(cache_info)],
cache_clean[CACHE_TYPE(cache_info)],
cache_lockdown[CACHE_TYPE(cache_info)],
- CACHE_S(cache_info) ? "separate I,D" : "unified");
+ CACHE_S(cache_info) ? "Harvard" : "Unified");
if (CACHE_S(cache_info)) {
c_show_cache(m, "I", CACHE_ISIZE(cache_info));
Index: traps.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel/traps.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- traps.c 20 Jan 2002 03:54:44 -0000 1.3
+++ traps.c 18 Mar 2002 19:29:08 -0000 1.4
@@ -95,7 +95,7 @@
int i;
printk("Code: ");
- for (i = -2; i < 3; i++) {
+ for (i = -4; i < 1; i++) {
unsigned int val, bad;
if (thumb)
@@ -115,7 +115,7 @@
static void dump_stack(struct task_struct *tsk, unsigned long sp)
{
- dump_mem("Stack: ", sp - 16, 8192+(unsigned long)tsk);
+ dump_mem("Stack: ", sp - 16, 8192+(unsigned long)tsk->thread_info);
}
static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
@@ -146,7 +146,7 @@
void show_trace_task(struct task_struct *tsk)
{
if (tsk != current) {
- unsigned int fp = tsk->thread.save->fp;
+ unsigned int fp = thread_saved_fp(tsk);
c_backtrace(fp, 0x10);
}
}
@@ -304,16 +304,17 @@
static int bad_syscall(int n, struct pt_regs *regs)
{
+ struct thread_info *thread = current_thread_info();
siginfo_t info;
/* You might think just testing `handler' would be enough, but PER_LINUX
* points it to no_lcall7 to catch undercover SVr4 binaries. Gutted.
*/
- if (current->personality != PER_LINUX && current->exec_domain->handler) {
+ if (current->personality != PER_LINUX && thread->exec_domain->handler) {
/* Hand it off to iBCS. The extra parameter and consequent type
* forcing is necessary because of the weird ARM calling convention.
*/
- current->exec_domain->handler(n, regs);
+ thread->exec_domain->handler(n, regs);
return regs->ARM_r0;
}
|