diff options
author | David S. Miller <davem@davemloft.net> | 2008-06-10 05:22:26 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-10 05:22:26 -0400 |
commit | 65b53e4cc90e59936733b3b95b9451d2ca47528d (patch) | |
tree | 29932718192962671c48c3fd1ea017a6112459e8 /arch/sh/kernel | |
parent | 788c0a53164c05c5ccdb1472474372b72ba74644 (diff) | |
parent | 2e761e0532a784816e7e822dbaaece8c5d4be14d (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/tg3.c
drivers/net/wireless/rt2x00/rt2x00dev.c
net/mac80211/ieee80211_i.h
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/cpu/sh4/probe.c | 1 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7785.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7723.c | 8 | ||||
-rw-r--r-- | arch/sh/kernel/entry-common.S | 12 | ||||
-rw-r--r-- | arch/sh/kernel/head_32.S | 4 | ||||
-rw-r--r-- | arch/sh/kernel/init_task.c | 1 | ||||
-rw-r--r-- | arch/sh/kernel/kgdb_stub.c | 11 | ||||
-rw-r--r-- | arch/sh/kernel/setup.c | 11 | ||||
-rw-r--r-- | arch/sh/kernel/traps.c | 10 |
10 files changed, 37 insertions, 25 deletions
diff --git a/arch/sh/kernel/cpu/sh4/probe.c b/arch/sh/kernel/cpu/sh4/probe.c index ebceb0dadff5..be4926969181 100644 --- a/arch/sh/kernel/cpu/sh4/probe.c +++ b/arch/sh/kernel/cpu/sh4/probe.c | |||
@@ -132,6 +132,7 @@ int __init detect_cpu_and_cache_system(void) | |||
132 | 132 | ||
133 | switch (prr) { | 133 | switch (prr) { |
134 | case 0x50: | 134 | case 0x50: |
135 | case 0x51: | ||
135 | boot_cpu_data.type = CPU_SH7723; | 136 | boot_cpu_data.type = CPU_SH7723; |
136 | boot_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_L2_CACHE; | 137 | boot_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_L2_CACHE; |
137 | break; | 138 | break; |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c index 805535aa505e..27fa81bef6a0 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7785.c | |||
@@ -26,7 +26,7 @@ static int pfc_divisors[] = { 1, 1, 1, 1, 1, 1, 1, 18, | |||
26 | 26 | ||
27 | static void master_clk_init(struct clk *clk) | 27 | static void master_clk_init(struct clk *clk) |
28 | { | 28 | { |
29 | clk->rate *= 36; | 29 | clk->rate *= pfc_divisors[ctrl_inl(FRQMR1) & 0x000f]; |
30 | } | 30 | } |
31 | 31 | ||
32 | static struct clk_ops sh7785_master_clk_ops = { | 32 | static struct clk_ops sh7785_master_clk_ops = { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index 069314037049..62ebccf18b3c 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | |||
@@ -16,7 +16,7 @@ | |||
16 | 16 | ||
17 | static struct resource usbf_resources[] = { | 17 | static struct resource usbf_resources[] = { |
18 | [0] = { | 18 | [0] = { |
19 | .name = "USBF", | 19 | .name = "m66592_udc", |
20 | .start = 0x04480000, | 20 | .start = 0x04480000, |
21 | .end = 0x044800FF, | 21 | .end = 0x044800FF, |
22 | .flags = IORESOURCE_MEM, | 22 | .flags = IORESOURCE_MEM, |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c index 16925cf28db8..566ce79b9abf 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c | |||
@@ -153,7 +153,7 @@ static struct intc_vect vectors[] __initdata = { | |||
153 | INTC_VECT(VIO_VOUI,0x8E0), | 153 | INTC_VECT(VIO_VOUI,0x8E0), |
154 | 154 | ||
155 | INTC_VECT(SCIFA_SCIFA0,0x900), | 155 | INTC_VECT(SCIFA_SCIFA0,0x900), |
156 | INTC_VECT(VPU_VPUI,0x920), | 156 | INTC_VECT(VPU_VPUI,0x980), |
157 | INTC_VECT(TPU_TPUI,0x9A0), | 157 | INTC_VECT(TPU_TPUI,0x9A0), |
158 | INTC_VECT(ADC_ADI,0x9E0), | 158 | INTC_VECT(ADC_ADI,0x9E0), |
159 | INTC_VECT(USB_USI0,0xA20), | 159 | INTC_VECT(USB_USI0,0xA20), |
@@ -292,9 +292,3 @@ void __init plat_irq_setup(void) | |||
292 | { | 292 | { |
293 | register_intc_controller(&intc_desc); | 293 | register_intc_controller(&intc_desc); |
294 | } | 294 | } |
295 | |||
296 | void __init plat_mem_setup(void) | ||
297 | { | ||
298 | /* Register the URAM space as Node 1 */ | ||
299 | setup_bootmem_node(1, 0x055f0000, 0x05610000); | ||
300 | } | ||
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index 926b2e7b11c1..718bd2356b34 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
@@ -1,9 +1,6 @@ | |||
1 | /* $Id: entry.S,v 1.37 2004/06/11 13:02:46 doyu Exp $ | 1 | /* |
2 | * | ||
3 | * linux/arch/sh/entry.S | ||
4 | * | ||
5 | * Copyright (C) 1999, 2000, 2002 Niibe Yutaka | 2 | * Copyright (C) 1999, 2000, 2002 Niibe Yutaka |
6 | * Copyright (C) 2003 Paul Mundt | 3 | * Copyright (C) 2003 - 2008 Paul Mundt |
7 | * | 4 | * |
8 | * This file is subject to the terms and conditions of the GNU General Public | 5 | * This file is subject to the terms and conditions of the GNU General Public |
9 | * License. See the file "COPYING" in the main directory of this archive | 6 | * License. See the file "COPYING" in the main directory of this archive |
@@ -262,6 +259,7 @@ __restore_all: | |||
262 | 259 | ||
263 | .align 2 | 260 | .align 2 |
264 | syscall_badsys: ! Bad syscall number | 261 | syscall_badsys: ! Bad syscall number |
262 | get_current_thread_info r8, r0 | ||
265 | mov #-ENOSYS, r0 | 263 | mov #-ENOSYS, r0 |
266 | bra resume_userspace | 264 | bra resume_userspace |
267 | mov.l r0, @(OFF_R0,r15) ! Return value | 265 | mov.l r0, @(OFF_R0,r15) ! Return value |
@@ -281,7 +279,9 @@ debug_trap: | |||
281 | mov.l 1f, r8 | 279 | mov.l 1f, r8 |
282 | add r0, r8 | 280 | add r0, r8 |
283 | mov.l @r8, r8 | 281 | mov.l @r8, r8 |
284 | jmp @r8 | 282 | jsr @r8 |
283 | nop | ||
284 | bra __restore_all | ||
285 | nop | 285 | nop |
286 | 286 | ||
287 | .align 2 | 287 | .align 2 |
diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S index d67d7ed09f22..ae0a382a82eb 100644 --- a/arch/sh/kernel/head_32.S +++ b/arch/sh/kernel/head_32.S | |||
@@ -30,8 +30,8 @@ ENTRY(empty_zero_page) | |||
30 | .long 0 /* RAMDISK_FLAGS */ | 30 | .long 0 /* RAMDISK_FLAGS */ |
31 | .long 0x0200 /* ORIG_ROOT_DEV */ | 31 | .long 0x0200 /* ORIG_ROOT_DEV */ |
32 | .long 1 /* LOADER_TYPE */ | 32 | .long 1 /* LOADER_TYPE */ |
33 | .long 0x00360000 /* INITRD_START */ | 33 | .long 0x00000000 /* INITRD_START */ |
34 | .long 0x000a0000 /* INITRD_SIZE */ | 34 | .long 0x00000000 /* INITRD_SIZE */ |
35 | #ifdef CONFIG_32BIT | 35 | #ifdef CONFIG_32BIT |
36 | .long 0x53453f00 + 32 /* "SE?" = 32 bit */ | 36 | .long 0x53453f00 + 32 /* "SE?" = 32 bit */ |
37 | #else | 37 | #else |
diff --git a/arch/sh/kernel/init_task.c b/arch/sh/kernel/init_task.c index f9bcc606127e..b151a25cb14d 100644 --- a/arch/sh/kernel/init_task.c +++ b/arch/sh/kernel/init_task.c | |||
@@ -8,7 +8,6 @@ | |||
8 | #include <asm/pgtable.h> | 8 | #include <asm/pgtable.h> |
9 | 9 | ||
10 | static struct fs_struct init_fs = INIT_FS; | 10 | static struct fs_struct init_fs = INIT_FS; |
11 | static struct files_struct init_files = INIT_FILES; | ||
12 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | 11 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); |
13 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | 12 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); |
14 | struct pt_regs fake_swapper_regs; | 13 | struct pt_regs fake_swapper_regs; |
diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c index 832641bbd47d..bf8ac4c71640 100644 --- a/arch/sh/kernel/kgdb_stub.c +++ b/arch/sh/kernel/kgdb_stub.c | |||
@@ -274,8 +274,7 @@ static char *mem_to_hex(const char *mem, char *buf, const int count) | |||
274 | } | 274 | } |
275 | for (i = 0; i < count; i++) { | 275 | for (i = 0; i < count; i++) { |
276 | ch = *mem++; | 276 | ch = *mem++; |
277 | *buf++ = highhex(ch); | 277 | buf = pack_hex_byte(buf, ch); |
278 | *buf++ = lowhex(ch); | ||
279 | } | 278 | } |
280 | *buf = 0; | 279 | *buf = 0; |
281 | return (buf); | 280 | return (buf); |
@@ -427,8 +426,8 @@ static void put_packet(char *buffer) | |||
427 | 426 | ||
428 | /* '#' Separator, put high and low components of checksum */ | 427 | /* '#' Separator, put high and low components of checksum */ |
429 | put_debug_char('#'); | 428 | put_debug_char('#'); |
430 | put_debug_char(highhex(checksum)); | 429 | put_debug_char(hex_asc_hi(checksum)); |
431 | put_debug_char(lowhex(checksum)); | 430 | put_debug_char(hex_asc_lo(checksum)); |
432 | } | 431 | } |
433 | while ((get_debug_char()) != '+'); /* While no ack */ | 432 | while ((get_debug_char()) != '+'); /* While no ack */ |
434 | } | 433 | } |
@@ -650,8 +649,8 @@ static void undo_single_step(void) | |||
650 | static void send_signal_msg(const int signum) | 649 | static void send_signal_msg(const int signum) |
651 | { | 650 | { |
652 | out_buffer[0] = 'S'; | 651 | out_buffer[0] = 'S'; |
653 | out_buffer[1] = highhex(signum); | 652 | out_buffer[1] = hex_asc_hi(signum); |
654 | out_buffer[2] = lowhex(signum); | 653 | out_buffer[2] = hex_asc_lo(signum); |
655 | out_buffer[3] = 0; | 654 | out_buffer[3] = 0; |
656 | put_packet(out_buffer); | 655 | put_packet(out_buffer); |
657 | } | 656 | } |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 516bde9c50fa..bca2bbc575db 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
@@ -292,6 +292,17 @@ void __init setup_arch(char **cmdline_p) | |||
292 | 292 | ||
293 | ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); | 293 | ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); |
294 | 294 | ||
295 | printk(KERN_NOTICE "Boot params:\n" | ||
296 | "... MOUNT_ROOT_RDONLY - %08lx\n" | ||
297 | "... RAMDISK_FLAGS - %08lx\n" | ||
298 | "... ORIG_ROOT_DEV - %08lx\n" | ||
299 | "... LOADER_TYPE - %08lx\n" | ||
300 | "... INITRD_START - %08lx\n" | ||
301 | "... INITRD_SIZE - %08lx\n", | ||
302 | MOUNT_ROOT_RDONLY, RAMDISK_FLAGS, | ||
303 | ORIG_ROOT_DEV, LOADER_TYPE, | ||
304 | INITRD_START, INITRD_SIZE); | ||
305 | |||
295 | #ifdef CONFIG_BLK_DEV_RAM | 306 | #ifdef CONFIG_BLK_DEV_RAM |
296 | rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK; | 307 | rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK; |
297 | rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0); | 308 | rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0); |
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index a3bdc68ef02c..438f1ebcc453 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/kdebug.h> | 4 | #include <linux/kdebug.h> |
5 | #include <linux/signal.h> | 5 | #include <linux/signal.h> |
6 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
7 | #include <linux/uaccess.h> | ||
7 | #include <asm/system.h> | 8 | #include <asm/system.h> |
8 | 9 | ||
9 | #ifdef CONFIG_BUG | 10 | #ifdef CONFIG_BUG |
@@ -21,7 +22,14 @@ static void handle_BUG(struct pt_regs *regs) | |||
21 | 22 | ||
22 | int is_valid_bugaddr(unsigned long addr) | 23 | int is_valid_bugaddr(unsigned long addr) |
23 | { | 24 | { |
24 | return addr >= PAGE_OFFSET; | 25 | unsigned short opcode; |
26 | |||
27 | if (addr < PAGE_OFFSET) | ||
28 | return 0; | ||
29 | if (probe_kernel_address((u16 *)addr, opcode)) | ||
30 | return 0; | ||
31 | |||
32 | return opcode == TRAPA_BUG_OPCODE; | ||
25 | } | 33 | } |
26 | #endif | 34 | #endif |
27 | 35 | ||