diff options
Diffstat (limited to 'arch/mn10300')
-rw-r--r-- | arch/mn10300/Kconfig | 11 | ||||
-rw-r--r-- | arch/mn10300/boot/install.sh | 16 | ||||
-rw-r--r-- | arch/mn10300/kernel/init_task.c | 1 | ||||
-rw-r--r-- | arch/mn10300/kernel/mn10300_ksyms.c | 5 | ||||
-rw-r--r-- | arch/mn10300/kernel/process.c | 2 | ||||
-rw-r--r-- | arch/mn10300/kernel/setup.c | 1 | ||||
-rw-r--r-- | arch/mn10300/kernel/sys_mn10300.c | 17 | ||||
-rw-r--r-- | arch/mn10300/lib/Makefile | 2 | ||||
-rw-r--r-- | arch/mn10300/lib/__ucmpdi2.S | 43 |
9 files changed, 58 insertions, 40 deletions
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 6a6409adc564..e856218da90d 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
@@ -186,17 +186,6 @@ config PREEMPT | |||
186 | Say Y here if you are building a kernel for a desktop, embedded | 186 | Say Y here if you are building a kernel for a desktop, embedded |
187 | or real-time system. Say N if you are unsure. | 187 | or real-time system. Say N if you are unsure. |
188 | 188 | ||
189 | config PREEMPT_BKL | ||
190 | bool "Preempt The Big Kernel Lock" | ||
191 | depends on PREEMPT | ||
192 | default y | ||
193 | help | ||
194 | This option reduces the latency of the kernel by making the | ||
195 | big kernel lock preemptible. | ||
196 | |||
197 | Say Y here if you are building a kernel for a desktop system. | ||
198 | Say N if you are unsure. | ||
199 | |||
200 | config MN10300_CURRENT_IN_E2 | 189 | config MN10300_CURRENT_IN_E2 |
201 | bool "Hold current task address in E2 register" | 190 | bool "Hold current task address in E2 register" |
202 | default y | 191 | default y |
diff --git a/arch/mn10300/boot/install.sh b/arch/mn10300/boot/install.sh index 072951c83976..abba30971191 100644 --- a/arch/mn10300/boot/install.sh +++ b/arch/mn10300/boot/install.sh | |||
@@ -26,42 +26,42 @@ rm -fr $4/../usr/include/linux $4/../usr/include/asm | |||
26 | install -c -m 0755 $2 $4/vmlinuz | 26 | install -c -m 0755 $2 $4/vmlinuz |
27 | install -c -m 0755 $5 $4/boot.rom | 27 | install -c -m 0755 $5 $4/boot.rom |
28 | install -c -m 0755 -d $4/../usr/include/linux | 28 | install -c -m 0755 -d $4/../usr/include/linux |
29 | cd $TOPDIR/include/linux | 29 | cd ${srctree}/include/linux |
30 | for i in `find . -maxdepth 1 -name '*.h' -print`; do | 30 | for i in `find . -maxdepth 1 -name '*.h' -print`; do |
31 | install -c -m 0644 $i $4/../usr/include/linux | 31 | install -c -m 0644 $i $4/../usr/include/linux |
32 | done | 32 | done |
33 | install -c -m 0755 -d $4/../usr/include/linux/byteorder | 33 | install -c -m 0755 -d $4/../usr/include/linux/byteorder |
34 | cd $TOPDIR/include/linux/byteorder | 34 | cd ${srctree}/include/linux/byteorder |
35 | for i in `find . -name '*.h' -print`; do | 35 | for i in `find . -name '*.h' -print`; do |
36 | install -c -m 0644 $i $4/../usr/include/linux/byteorder | 36 | install -c -m 0644 $i $4/../usr/include/linux/byteorder |
37 | done | 37 | done |
38 | install -c -m 0755 -d $4/../usr/include/linux/lockd | 38 | install -c -m 0755 -d $4/../usr/include/linux/lockd |
39 | cd $TOPDIR/include/linux/lockd | 39 | cd ${srctree}/include/linux/lockd |
40 | for i in `find . -name '*.h' -print`; do | 40 | for i in `find . -name '*.h' -print`; do |
41 | install -c -m 0644 $i $4/../usr/include/linux/lockd | 41 | install -c -m 0644 $i $4/../usr/include/linux/lockd |
42 | done | 42 | done |
43 | install -c -m 0755 -d $4/../usr/include/linux/netfilter_ipv4 | 43 | install -c -m 0755 -d $4/../usr/include/linux/netfilter_ipv4 |
44 | cd $TOPDIR/include/linux/netfilter_ipv4 | 44 | cd ${srctree}/include/linux/netfilter_ipv4 |
45 | for i in `find . -name '*.h' -print`; do | 45 | for i in `find . -name '*.h' -print`; do |
46 | install -c -m 0644 $i $4/../usr/include/linux/netfilter_ipv4 | 46 | install -c -m 0644 $i $4/../usr/include/linux/netfilter_ipv4 |
47 | done | 47 | done |
48 | install -c -m 0755 -d $4/../usr/include/linux/nfsd | 48 | install -c -m 0755 -d $4/../usr/include/linux/nfsd |
49 | cd $TOPDIR/include/linux/nfsd | 49 | cd ${srctree}/include/linux/nfsd |
50 | for i in `find . -name '*.h' -print`; do | 50 | for i in `find . -name '*.h' -print`; do |
51 | install -c -m 0644 $i $4/../usr/include/linux/nfsd/$i | 51 | install -c -m 0644 $i $4/../usr/include/linux/nfsd/$i |
52 | done | 52 | done |
53 | install -c -m 0755 -d $4/../usr/include/linux/raid | 53 | install -c -m 0755 -d $4/../usr/include/linux/raid |
54 | cd $TOPDIR/include/linux/raid | 54 | cd ${srctree}/include/linux/raid |
55 | for i in `find . -name '*.h' -print`; do | 55 | for i in `find . -name '*.h' -print`; do |
56 | install -c -m 0644 $i $4/../usr/include/linux/raid | 56 | install -c -m 0644 $i $4/../usr/include/linux/raid |
57 | done | 57 | done |
58 | install -c -m 0755 -d $4/../usr/include/linux/sunrpc | 58 | install -c -m 0755 -d $4/../usr/include/linux/sunrpc |
59 | cd $TOPDIR/include/linux/sunrpc | 59 | cd ${srctree}/include/linux/sunrpc |
60 | for i in `find . -name '*.h' -print`; do | 60 | for i in `find . -name '*.h' -print`; do |
61 | install -c -m 0644 $i $4/../usr/include/linux/sunrpc | 61 | install -c -m 0644 $i $4/../usr/include/linux/sunrpc |
62 | done | 62 | done |
63 | install -c -m 0755 -d $4/../usr/include/asm | 63 | install -c -m 0755 -d $4/../usr/include/asm |
64 | cd $TOPDIR/include/asm | 64 | cd ${srctree}/include/asm |
65 | for i in `find . -name '*.h' -print`; do | 65 | for i in `find . -name '*.h' -print`; do |
66 | install -c -m 0644 $i $4/../usr/include/asm | 66 | install -c -m 0644 $i $4/../usr/include/asm |
67 | done | 67 | done |
diff --git a/arch/mn10300/kernel/init_task.c b/arch/mn10300/kernel/init_task.c index 39fe6882dd1d..af16f6e5c918 100644 --- a/arch/mn10300/kernel/init_task.c +++ b/arch/mn10300/kernel/init_task.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <asm/pgtable.h> | 19 | #include <asm/pgtable.h> |
20 | 20 | ||
21 | static struct fs_struct init_fs = INIT_FS; | 21 | static struct fs_struct init_fs = INIT_FS; |
22 | static struct files_struct init_files = INIT_FILES; | ||
23 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | 22 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); |
24 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | 23 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); |
25 | struct mm_struct init_mm = INIT_MM(init_mm); | 24 | struct mm_struct init_mm = INIT_MM(init_mm); |
diff --git a/arch/mn10300/kernel/mn10300_ksyms.c b/arch/mn10300/kernel/mn10300_ksyms.c index 6d19628634e3..f9eb9753a404 100644 --- a/arch/mn10300/kernel/mn10300_ksyms.c +++ b/arch/mn10300/kernel/mn10300_ksyms.c | |||
@@ -10,8 +10,11 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
13 | #include <asm/pgtable.h> | ||
13 | 14 | ||
14 | 15 | ||
16 | EXPORT_SYMBOL(empty_zero_page); | ||
17 | |||
15 | EXPORT_SYMBOL(change_bit); | 18 | EXPORT_SYMBOL(change_bit); |
16 | EXPORT_SYMBOL(test_and_change_bit); | 19 | EXPORT_SYMBOL(test_and_change_bit); |
17 | 20 | ||
@@ -31,7 +34,9 @@ extern u64 __ashrdi3(u64, unsigned); | |||
31 | extern u64 __ashldi3(u64, unsigned); | 34 | extern u64 __ashldi3(u64, unsigned); |
32 | extern u64 __lshrdi3(u64, unsigned); | 35 | extern u64 __lshrdi3(u64, unsigned); |
33 | extern s64 __negdi2(s64); | 36 | extern s64 __negdi2(s64); |
37 | extern int __ucmpdi2(u64, u64); | ||
34 | EXPORT_SYMBOL(__ashrdi3); | 38 | EXPORT_SYMBOL(__ashrdi3); |
35 | EXPORT_SYMBOL(__ashldi3); | 39 | EXPORT_SYMBOL(__ashldi3); |
36 | EXPORT_SYMBOL(__lshrdi3); | 40 | EXPORT_SYMBOL(__lshrdi3); |
37 | EXPORT_SYMBOL(__negdi2); | 41 | EXPORT_SYMBOL(__negdi2); |
42 | EXPORT_SYMBOL(__ucmpdi2); | ||
diff --git a/arch/mn10300/kernel/process.c b/arch/mn10300/kernel/process.c index 3b0d579fc15d..b28c9a60445b 100644 --- a/arch/mn10300/kernel/process.c +++ b/arch/mn10300/kernel/process.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/ptrace.h> | 20 | #include <linux/ptrace.h> |
21 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
22 | #include <linux/user.h> | 22 | #include <linux/user.h> |
23 | #include <linux/a.out.h> | ||
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
25 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
26 | #include <linux/reboot.h> | 25 | #include <linux/reboot.h> |
@@ -154,6 +153,7 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) | |||
154 | return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, | 153 | return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, |
155 | NULL, NULL); | 154 | NULL, NULL); |
156 | } | 155 | } |
156 | EXPORT_SYMBOL(kernel_thread); | ||
157 | 157 | ||
158 | /* | 158 | /* |
159 | * free current thread data structures etc.. | 159 | * free current thread data structures etc.. |
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c index 6b7ce2636851..017121ce896f 100644 --- a/arch/mn10300/kernel/setup.c +++ b/arch/mn10300/kernel/setup.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/ptrace.h> | 17 | #include <linux/ptrace.h> |
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
19 | #include <linux/user.h> | 19 | #include <linux/user.h> |
20 | #include <linux/a.out.h> | ||
21 | #include <linux/tty.h> | 20 | #include <linux/tty.h> |
22 | #include <linux/ioport.h> | 21 | #include <linux/ioport.h> |
23 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
diff --git a/arch/mn10300/kernel/sys_mn10300.c b/arch/mn10300/kernel/sys_mn10300.c index 5f17a1ebc825..bca5a84dc72c 100644 --- a/arch/mn10300/kernel/sys_mn10300.c +++ b/arch/mn10300/kernel/sys_mn10300.c | |||
@@ -29,23 +29,6 @@ | |||
29 | #define MIN_MAP_ADDR PAGE_SIZE /* minimum fixed mmap address */ | 29 | #define MIN_MAP_ADDR PAGE_SIZE /* minimum fixed mmap address */ |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * sys_pipe() is the normal C calling standard for creating | ||
33 | * a pipe. It's not the way Unix traditionally does this, though. | ||
34 | */ | ||
35 | asmlinkage long sys_pipe(unsigned long __user *fildes) | ||
36 | { | ||
37 | int fd[2]; | ||
38 | int error; | ||
39 | |||
40 | error = do_pipe(fd); | ||
41 | if (!error) { | ||
42 | if (copy_to_user(fildes, fd, 2 * sizeof(int))) | ||
43 | error = -EFAULT; | ||
44 | } | ||
45 | return error; | ||
46 | } | ||
47 | |||
48 | /* | ||
49 | * memory mapping syscall | 32 | * memory mapping syscall |
50 | */ | 33 | */ |
51 | asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, | 34 | asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, |
diff --git a/arch/mn10300/lib/Makefile b/arch/mn10300/lib/Makefile index fdfa9ec5b5bb..0cd2346f4c13 100644 --- a/arch/mn10300/lib/Makefile +++ b/arch/mn10300/lib/Makefile | |||
@@ -4,4 +4,4 @@ | |||
4 | 4 | ||
5 | lib-y = delay.o usercopy.o checksum.o bitops.o memcpy.o memmove.o memset.o | 5 | lib-y = delay.o usercopy.o checksum.o bitops.o memcpy.o memmove.o memset.o |
6 | lib-y += do_csum.o | 6 | lib-y += do_csum.o |
7 | lib-y += __ashldi3.o __ashrdi3.o __lshrdi3.o negdi2.o | 7 | lib-y += __ashldi3.o __ashrdi3.o __lshrdi3.o negdi2.o __ucmpdi2.o |
diff --git a/arch/mn10300/lib/__ucmpdi2.S b/arch/mn10300/lib/__ucmpdi2.S new file mode 100644 index 000000000000..60dcbdfe386c --- /dev/null +++ b/arch/mn10300/lib/__ucmpdi2.S | |||
@@ -0,0 +1,43 @@ | |||
1 | /* __ucmpdi2.S: 64-bit unsigned compare | ||
2 | * | ||
3 | * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | |||
13 | .text | ||
14 | .p2align 4 | ||
15 | |||
16 | ############################################################################### | ||
17 | # | ||
18 | # int __ucmpdi2(unsigned long long a [D0:D1], | ||
19 | # unsigned long long b [(SP,12),(SP,16)]) | ||
20 | # | ||
21 | # - returns 0, 1, or 2 as a <, =, > b respectively. | ||
22 | # | ||
23 | ############################################################################### | ||
24 | .globl __ucmpdi2 | ||
25 | .type __ucmpdi2,@function | ||
26 | __ucmpdi2: | ||
27 | mov (12,sp),a0 # b.lsw | ||
28 | mov (16,sp),a1 # b.msw | ||
29 | |||
30 | sub a0,d0 | ||
31 | subc a1,d1 # may clear Z, never sets it | ||
32 | bne __ucmpdi2_differ # a.msw != b.msw | ||
33 | mov +1,d0 | ||
34 | rets | ||
35 | |||
36 | __ucmpdi2_differ: | ||
37 | # C flag is set if LE, clear if GE | ||
38 | subc d0,d0 # -1 if LE, 0 if GE | ||
39 | add +1,d0 # 0 if LE, 1 if GE | ||
40 | add d0,d0 # 0 if LE, 2 if GE | ||
41 | rets | ||
42 | |||
43 | .size __ucmpdi2, .-__ucmpdi2 | ||