diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-20 18:02:22 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-20 18:02:22 -0500 |
commit | 8a60ba0a0512c00553c9a20f83f7eabd2662ac0b (patch) | |
tree | 7e203d6a4dec465cdd58f1b5e75c8f4ad6368578 /arch | |
parent | af2e2f328052082f58f041d574ed50c7f21c598f (diff) | |
parent | e7f2c8c1f0e5b062c23001dac229e570228940e8 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32
Pull AVR32 updates from Hans-Christian Egtvedt.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
avr32: uapi: be sure of "_UAPI" prefix for all guard macros
avr32: add kprobe_ctlblk memory struct
avr32: fix out-of-range jump in large kernels
avr32: setup crt for early panic()
Diffstat (limited to 'arch')
35 files changed, 101 insertions, 129 deletions
diff --git a/arch/avr32/boot/u-boot/head.S b/arch/avr32/boot/u-boot/head.S index 4488fa27fe94..2ffc298f061b 100644 --- a/arch/avr32/boot/u-boot/head.S +++ b/arch/avr32/boot/u-boot/head.S | |||
@@ -8,6 +8,8 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <asm/setup.h> | 10 | #include <asm/setup.h> |
11 | #include <asm/thread_info.h> | ||
12 | #include <asm/sysreg.h> | ||
11 | 13 | ||
12 | /* | 14 | /* |
13 | * The kernel is loaded where we want it to be and all caches | 15 | * The kernel is loaded where we want it to be and all caches |
@@ -20,11 +22,6 @@ | |||
20 | .section .init.text,"ax" | 22 | .section .init.text,"ax" |
21 | .global _start | 23 | .global _start |
22 | _start: | 24 | _start: |
23 | /* Check if the boot loader actually provided a tag table */ | ||
24 | lddpc r0, magic_number | ||
25 | cp.w r12, r0 | ||
26 | brne no_tag_table | ||
27 | |||
28 | /* Initialize .bss */ | 25 | /* Initialize .bss */ |
29 | lddpc r2, bss_start_addr | 26 | lddpc r2, bss_start_addr |
30 | lddpc r3, end_addr | 27 | lddpc r3, end_addr |
@@ -34,6 +31,25 @@ _start: | |||
34 | cp r2, r3 | 31 | cp r2, r3 |
35 | brlo 1b | 32 | brlo 1b |
36 | 33 | ||
34 | /* Initialize status register */ | ||
35 | lddpc r0, init_sr | ||
36 | mtsr SYSREG_SR, r0 | ||
37 | |||
38 | /* Set initial stack pointer */ | ||
39 | lddpc sp, stack_addr | ||
40 | sub sp, -THREAD_SIZE | ||
41 | |||
42 | #ifdef CONFIG_FRAME_POINTER | ||
43 | /* Mark last stack frame */ | ||
44 | mov lr, 0 | ||
45 | mov r7, 0 | ||
46 | #endif | ||
47 | |||
48 | /* Check if the boot loader actually provided a tag table */ | ||
49 | lddpc r0, magic_number | ||
50 | cp.w r12, r0 | ||
51 | brne no_tag_table | ||
52 | |||
37 | /* | 53 | /* |
38 | * Save the tag table address for later use. This must be done | 54 | * Save the tag table address for later use. This must be done |
39 | * _after_ .bss has been initialized... | 55 | * _after_ .bss has been initialized... |
@@ -53,8 +69,15 @@ bss_start_addr: | |||
53 | .long __bss_start | 69 | .long __bss_start |
54 | end_addr: | 70 | end_addr: |
55 | .long _end | 71 | .long _end |
72 | init_sr: | ||
73 | .long 0x007f0000 /* Supervisor mode, everything masked */ | ||
74 | stack_addr: | ||
75 | .long init_thread_union | ||
76 | panic_addr: | ||
77 | .long panic | ||
56 | 78 | ||
57 | no_tag_table: | 79 | no_tag_table: |
58 | sub r12, pc, (. - 2f) | 80 | sub r12, pc, (. - 2f) |
59 | bral panic | 81 | /* branch to panic() which can be far away with that construct */ |
82 | lddpc pc, panic_addr | ||
60 | 2: .asciz "Boot loader didn't provide correct magic number\n" | 83 | 2: .asciz "Boot loader didn't provide correct magic number\n" |
diff --git a/arch/avr32/include/asm/kprobes.h b/arch/avr32/include/asm/kprobes.h index 996cb656474e..45f563ed73fd 100644 --- a/arch/avr32/include/asm/kprobes.h +++ b/arch/avr32/include/asm/kprobes.h | |||
@@ -16,6 +16,7 @@ | |||
16 | typedef u16 kprobe_opcode_t; | 16 | typedef u16 kprobe_opcode_t; |
17 | #define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */ | 17 | #define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */ |
18 | #define MAX_INSN_SIZE 2 | 18 | #define MAX_INSN_SIZE 2 |
19 | #define MAX_STACK_SIZE 64 /* 32 would probably be OK */ | ||
19 | 20 | ||
20 | #define kretprobe_blacklist_size 0 | 21 | #define kretprobe_blacklist_size 0 |
21 | 22 | ||
@@ -26,6 +27,19 @@ struct arch_specific_insn { | |||
26 | kprobe_opcode_t insn[MAX_INSN_SIZE]; | 27 | kprobe_opcode_t insn[MAX_INSN_SIZE]; |
27 | }; | 28 | }; |
28 | 29 | ||
30 | struct prev_kprobe { | ||
31 | struct kprobe *kp; | ||
32 | unsigned int status; | ||
33 | }; | ||
34 | |||
35 | /* per-cpu kprobe control block */ | ||
36 | struct kprobe_ctlblk { | ||
37 | unsigned int kprobe_status; | ||
38 | struct prev_kprobe prev_kprobe; | ||
39 | struct pt_regs jprobe_saved_regs; | ||
40 | char jprobes_stack[MAX_STACK_SIZE]; | ||
41 | }; | ||
42 | |||
29 | extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); | 43 | extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); |
30 | extern int kprobe_exceptions_notify(struct notifier_block *self, | 44 | extern int kprobe_exceptions_notify(struct notifier_block *self, |
31 | unsigned long val, void *data); | 45 | unsigned long val, void *data); |
diff --git a/arch/avr32/include/uapi/asm/Kbuild b/arch/avr32/include/uapi/asm/Kbuild index 3b85eaddf525..08d8a3d76ea8 100644 --- a/arch/avr32/include/uapi/asm/Kbuild +++ b/arch/avr32/include/uapi/asm/Kbuild | |||
@@ -2,35 +2,35 @@ | |||
2 | include include/uapi/asm-generic/Kbuild.asm | 2 | include include/uapi/asm-generic/Kbuild.asm |
3 | 3 | ||
4 | header-y += auxvec.h | 4 | header-y += auxvec.h |
5 | header-y += bitsperlong.h | ||
6 | header-y += byteorder.h | 5 | header-y += byteorder.h |
7 | header-y += cachectl.h | 6 | header-y += cachectl.h |
8 | header-y += errno.h | ||
9 | header-y += fcntl.h | ||
10 | header-y += ioctl.h | ||
11 | header-y += ioctls.h | ||
12 | header-y += ipcbuf.h | ||
13 | header-y += kvm_para.h | ||
14 | header-y += mman.h | ||
15 | header-y += msgbuf.h | 7 | header-y += msgbuf.h |
16 | header-y += param.h | 8 | header-y += param.h |
17 | header-y += poll.h | ||
18 | header-y += posix_types.h | 9 | header-y += posix_types.h |
19 | header-y += ptrace.h | 10 | header-y += ptrace.h |
20 | header-y += resource.h | ||
21 | header-y += sembuf.h | 11 | header-y += sembuf.h |
22 | header-y += setup.h | 12 | header-y += setup.h |
23 | header-y += shmbuf.h | 13 | header-y += shmbuf.h |
24 | header-y += sigcontext.h | 14 | header-y += sigcontext.h |
25 | header-y += siginfo.h | ||
26 | header-y += signal.h | 15 | header-y += signal.h |
27 | header-y += socket.h | 16 | header-y += socket.h |
28 | header-y += sockios.h | 17 | header-y += sockios.h |
29 | header-y += stat.h | 18 | header-y += stat.h |
30 | header-y += statfs.h | ||
31 | header-y += swab.h | 19 | header-y += swab.h |
32 | header-y += termbits.h | 20 | header-y += termbits.h |
33 | header-y += termios.h | 21 | header-y += termios.h |
34 | header-y += types.h | 22 | header-y += types.h |
35 | header-y += unistd.h | 23 | header-y += unistd.h |
24 | generic-y += bitsperlong.h | ||
25 | generic-y += errno.h | ||
26 | generic-y += fcntl.h | ||
27 | generic-y += ioctl.h | ||
28 | generic-y += ioctls.h | ||
29 | generic-y += ipcbuf.h | ||
30 | generic-y += kvm_para.h | ||
31 | generic-y += mman.h | ||
36 | generic-y += param.h | 32 | generic-y += param.h |
33 | generic-y += poll.h | ||
34 | generic-y += resource.h | ||
35 | generic-y += siginfo.h | ||
36 | generic-y += statfs.h | ||
diff --git a/arch/avr32/include/uapi/asm/auxvec.h b/arch/avr32/include/uapi/asm/auxvec.h index d5dd435bf8f4..4f02da3ffefa 100644 --- a/arch/avr32/include/uapi/asm/auxvec.h +++ b/arch/avr32/include/uapi/asm/auxvec.h | |||
@@ -1,4 +1,4 @@ | |||
1 | #ifndef __ASM_AVR32_AUXVEC_H | 1 | #ifndef _UAPI__ASM_AVR32_AUXVEC_H |
2 | #define __ASM_AVR32_AUXVEC_H | 2 | #define _UAPI__ASM_AVR32_AUXVEC_H |
3 | 3 | ||
4 | #endif /* __ASM_AVR32_AUXVEC_H */ | 4 | #endif /* _UAPI__ASM_AVR32_AUXVEC_H */ |
diff --git a/arch/avr32/include/uapi/asm/bitsperlong.h b/arch/avr32/include/uapi/asm/bitsperlong.h deleted file mode 100644 index 6dc0bb0c13b2..000000000000 --- a/arch/avr32/include/uapi/asm/bitsperlong.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/bitsperlong.h> | ||
diff --git a/arch/avr32/include/uapi/asm/byteorder.h b/arch/avr32/include/uapi/asm/byteorder.h index 50abc21619a8..71242f0d39c6 100644 --- a/arch/avr32/include/uapi/asm/byteorder.h +++ b/arch/avr32/include/uapi/asm/byteorder.h | |||
@@ -1,9 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * AVR32 endian-conversion functions. | 2 | * AVR32 endian-conversion functions. |
3 | */ | 3 | */ |
4 | #ifndef __ASM_AVR32_BYTEORDER_H | 4 | #ifndef _UAPI__ASM_AVR32_BYTEORDER_H |
5 | #define __ASM_AVR32_BYTEORDER_H | 5 | #define _UAPI__ASM_AVR32_BYTEORDER_H |
6 | 6 | ||
7 | #include <linux/byteorder/big_endian.h> | 7 | #include <linux/byteorder/big_endian.h> |
8 | 8 | ||
9 | #endif /* __ASM_AVR32_BYTEORDER_H */ | 9 | #endif /* _UAPI__ASM_AVR32_BYTEORDER_H */ |
diff --git a/arch/avr32/include/uapi/asm/cachectl.h b/arch/avr32/include/uapi/asm/cachectl.h index 4faf1ce60061..573a9584dd57 100644 --- a/arch/avr32/include/uapi/asm/cachectl.h +++ b/arch/avr32/include/uapi/asm/cachectl.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_CACHECTL_H | 1 | #ifndef _UAPI__ASM_AVR32_CACHECTL_H |
2 | #define __ASM_AVR32_CACHECTL_H | 2 | #define _UAPI__ASM_AVR32_CACHECTL_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * Operations that can be performed through the cacheflush system call | 5 | * Operations that can be performed through the cacheflush system call |
@@ -8,4 +8,4 @@ | |||
8 | /* Clean the data cache, then invalidate the icache */ | 8 | /* Clean the data cache, then invalidate the icache */ |
9 | #define CACHE_IFLUSH 0 | 9 | #define CACHE_IFLUSH 0 |
10 | 10 | ||
11 | #endif /* __ASM_AVR32_CACHECTL_H */ | 11 | #endif /* _UAPI__ASM_AVR32_CACHECTL_H */ |
diff --git a/arch/avr32/include/uapi/asm/errno.h b/arch/avr32/include/uapi/asm/errno.h deleted file mode 100644 index 558a7249f06d..000000000000 --- a/arch/avr32/include/uapi/asm/errno.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_ERRNO_H | ||
2 | #define __ASM_AVR32_ERRNO_H | ||
3 | |||
4 | #include <asm-generic/errno.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_ERRNO_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/fcntl.h b/arch/avr32/include/uapi/asm/fcntl.h deleted file mode 100644 index 14c0c4402b11..000000000000 --- a/arch/avr32/include/uapi/asm/fcntl.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_FCNTL_H | ||
2 | #define __ASM_AVR32_FCNTL_H | ||
3 | |||
4 | #include <asm-generic/fcntl.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_FCNTL_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/ioctl.h b/arch/avr32/include/uapi/asm/ioctl.h deleted file mode 100644 index c8472c1398ef..000000000000 --- a/arch/avr32/include/uapi/asm/ioctl.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_IOCTL_H | ||
2 | #define __ASM_AVR32_IOCTL_H | ||
3 | |||
4 | #include <asm-generic/ioctl.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_IOCTL_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/ioctls.h b/arch/avr32/include/uapi/asm/ioctls.h deleted file mode 100644 index 909cf66feaf5..000000000000 --- a/arch/avr32/include/uapi/asm/ioctls.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_IOCTLS_H | ||
2 | #define __ASM_AVR32_IOCTLS_H | ||
3 | |||
4 | #include <asm-generic/ioctls.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_IOCTLS_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/ipcbuf.h b/arch/avr32/include/uapi/asm/ipcbuf.h deleted file mode 100644 index 84c7e51cb6d0..000000000000 --- a/arch/avr32/include/uapi/asm/ipcbuf.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/ipcbuf.h> | ||
diff --git a/arch/avr32/include/uapi/asm/kvm_para.h b/arch/avr32/include/uapi/asm/kvm_para.h deleted file mode 100644 index 14fab8f0b957..000000000000 --- a/arch/avr32/include/uapi/asm/kvm_para.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/kvm_para.h> | ||
diff --git a/arch/avr32/include/uapi/asm/mman.h b/arch/avr32/include/uapi/asm/mman.h deleted file mode 100644 index 8eebf89f5ab1..000000000000 --- a/arch/avr32/include/uapi/asm/mman.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/mman.h> | ||
diff --git a/arch/avr32/include/uapi/asm/msgbuf.h b/arch/avr32/include/uapi/asm/msgbuf.h index ac18bc4da7f7..9eae6effad14 100644 --- a/arch/avr32/include/uapi/asm/msgbuf.h +++ b/arch/avr32/include/uapi/asm/msgbuf.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_MSGBUF_H | 1 | #ifndef _UAPI__ASM_AVR32_MSGBUF_H |
2 | #define __ASM_AVR32_MSGBUF_H | 2 | #define _UAPI__ASM_AVR32_MSGBUF_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * The msqid64_ds structure for i386 architecture. | 5 | * The msqid64_ds structure for i386 architecture. |
@@ -28,4 +28,4 @@ struct msqid64_ds { | |||
28 | unsigned long __unused5; | 28 | unsigned long __unused5; |
29 | }; | 29 | }; |
30 | 30 | ||
31 | #endif /* __ASM_AVR32_MSGBUF_H */ | 31 | #endif /* _UAPI__ASM_AVR32_MSGBUF_H */ |
diff --git a/arch/avr32/include/uapi/asm/poll.h b/arch/avr32/include/uapi/asm/poll.h deleted file mode 100644 index c98509d3149e..000000000000 --- a/arch/avr32/include/uapi/asm/poll.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/poll.h> | ||
diff --git a/arch/avr32/include/uapi/asm/posix_types.h b/arch/avr32/include/uapi/asm/posix_types.h index 9ba9e749b3f3..5b813a8abf09 100644 --- a/arch/avr32/include/uapi/asm/posix_types.h +++ b/arch/avr32/include/uapi/asm/posix_types.h | |||
@@ -5,8 +5,8 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #ifndef __ASM_AVR32_POSIX_TYPES_H | 8 | #ifndef _UAPI__ASM_AVR32_POSIX_TYPES_H |
9 | #define __ASM_AVR32_POSIX_TYPES_H | 9 | #define _UAPI__ASM_AVR32_POSIX_TYPES_H |
10 | 10 | ||
11 | /* | 11 | /* |
12 | * This file is generally used by user-level software, so you need to | 12 | * This file is generally used by user-level software, so you need to |
@@ -34,4 +34,4 @@ typedef unsigned short __kernel_old_dev_t; | |||
34 | 34 | ||
35 | #include <asm-generic/posix_types.h> | 35 | #include <asm-generic/posix_types.h> |
36 | 36 | ||
37 | #endif /* __ASM_AVR32_POSIX_TYPES_H */ | 37 | #endif /* _UAPI__ASM_AVR32_POSIX_TYPES_H */ |
diff --git a/arch/avr32/include/uapi/asm/resource.h b/arch/avr32/include/uapi/asm/resource.h deleted file mode 100644 index c6dd101472b1..000000000000 --- a/arch/avr32/include/uapi/asm/resource.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_RESOURCE_H | ||
2 | #define __ASM_AVR32_RESOURCE_H | ||
3 | |||
4 | #include <asm-generic/resource.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_RESOURCE_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/sembuf.h b/arch/avr32/include/uapi/asm/sembuf.h index e472216e0c97..6c6f7cf1e75a 100644 --- a/arch/avr32/include/uapi/asm/sembuf.h +++ b/arch/avr32/include/uapi/asm/sembuf.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_SEMBUF_H | 1 | #ifndef _UAPI__ASM_AVR32_SEMBUF_H |
2 | #define __ASM_AVR32_SEMBUF_H | 2 | #define _UAPI__ASM_AVR32_SEMBUF_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * The semid64_ds structure for AVR32 architecture. | 5 | * The semid64_ds structure for AVR32 architecture. |
@@ -22,4 +22,4 @@ struct semid64_ds { | |||
22 | unsigned long __unused4; | 22 | unsigned long __unused4; |
23 | }; | 23 | }; |
24 | 24 | ||
25 | #endif /* __ASM_AVR32_SEMBUF_H */ | 25 | #endif /* _UAPI__ASM_AVR32_SEMBUF_H */ |
diff --git a/arch/avr32/include/uapi/asm/setup.h b/arch/avr32/include/uapi/asm/setup.h index e58aa9356faf..a654df7dba46 100644 --- a/arch/avr32/include/uapi/asm/setup.h +++ b/arch/avr32/include/uapi/asm/setup.h | |||
@@ -13,5 +13,4 @@ | |||
13 | 13 | ||
14 | #define COMMAND_LINE_SIZE 256 | 14 | #define COMMAND_LINE_SIZE 256 |
15 | 15 | ||
16 | |||
17 | #endif /* _UAPI__ASM_AVR32_SETUP_H__ */ | 16 | #endif /* _UAPI__ASM_AVR32_SETUP_H__ */ |
diff --git a/arch/avr32/include/uapi/asm/shmbuf.h b/arch/avr32/include/uapi/asm/shmbuf.h index c62fba41739a..b94cf8b60b73 100644 --- a/arch/avr32/include/uapi/asm/shmbuf.h +++ b/arch/avr32/include/uapi/asm/shmbuf.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_SHMBUF_H | 1 | #ifndef _UAPI__ASM_AVR32_SHMBUF_H |
2 | #define __ASM_AVR32_SHMBUF_H | 2 | #define _UAPI__ASM_AVR32_SHMBUF_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * The shmid64_ds structure for i386 architecture. | 5 | * The shmid64_ds structure for i386 architecture. |
@@ -39,4 +39,4 @@ struct shminfo64 { | |||
39 | unsigned long __unused4; | 39 | unsigned long __unused4; |
40 | }; | 40 | }; |
41 | 41 | ||
42 | #endif /* __ASM_AVR32_SHMBUF_H */ | 42 | #endif /* _UAPI__ASM_AVR32_SHMBUF_H */ |
diff --git a/arch/avr32/include/uapi/asm/sigcontext.h b/arch/avr32/include/uapi/asm/sigcontext.h index e04062b5f39f..27e56bf6377f 100644 --- a/arch/avr32/include/uapi/asm/sigcontext.h +++ b/arch/avr32/include/uapi/asm/sigcontext.h | |||
@@ -5,8 +5,8 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #ifndef __ASM_AVR32_SIGCONTEXT_H | 8 | #ifndef _UAPI__ASM_AVR32_SIGCONTEXT_H |
9 | #define __ASM_AVR32_SIGCONTEXT_H | 9 | #define _UAPI__ASM_AVR32_SIGCONTEXT_H |
10 | 10 | ||
11 | struct sigcontext { | 11 | struct sigcontext { |
12 | unsigned long oldmask; | 12 | unsigned long oldmask; |
@@ -31,4 +31,4 @@ struct sigcontext { | |||
31 | unsigned long r0; | 31 | unsigned long r0; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | #endif /* __ASM_AVR32_SIGCONTEXT_H */ | 34 | #endif /* _UAPI__ASM_AVR32_SIGCONTEXT_H */ |
diff --git a/arch/avr32/include/uapi/asm/siginfo.h b/arch/avr32/include/uapi/asm/siginfo.h deleted file mode 100644 index 5ee93f40a8a8..000000000000 --- a/arch/avr32/include/uapi/asm/siginfo.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _AVR32_SIGINFO_H | ||
2 | #define _AVR32_SIGINFO_H | ||
3 | |||
4 | #include <asm-generic/siginfo.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/avr32/include/uapi/asm/signal.h b/arch/avr32/include/uapi/asm/signal.h index 1b77a93eff50..ffe8c770cafd 100644 --- a/arch/avr32/include/uapi/asm/signal.h +++ b/arch/avr32/include/uapi/asm/signal.h | |||
@@ -118,5 +118,4 @@ typedef struct sigaltstack { | |||
118 | size_t ss_size; | 118 | size_t ss_size; |
119 | } stack_t; | 119 | } stack_t; |
120 | 120 | ||
121 | |||
122 | #endif /* _UAPI__ASM_AVR32_SIGNAL_H */ | 121 | #endif /* _UAPI__ASM_AVR32_SIGNAL_H */ |
diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h index 439936421434..cbf902e4cd9e 100644 --- a/arch/avr32/include/uapi/asm/socket.h +++ b/arch/avr32/include/uapi/asm/socket.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_SOCKET_H | 1 | #ifndef _UAPI__ASM_AVR32_SOCKET_H |
2 | #define __ASM_AVR32_SOCKET_H | 2 | #define _UAPI__ASM_AVR32_SOCKET_H |
3 | 3 | ||
4 | #include <asm/sockios.h> | 4 | #include <asm/sockios.h> |
5 | 5 | ||
@@ -78,4 +78,4 @@ | |||
78 | 78 | ||
79 | #define SO_MAX_PACING_RATE 47 | 79 | #define SO_MAX_PACING_RATE 47 |
80 | 80 | ||
81 | #endif /* __ASM_AVR32_SOCKET_H */ | 81 | #endif /* _UAPI__ASM_AVR32_SOCKET_H */ |
diff --git a/arch/avr32/include/uapi/asm/sockios.h b/arch/avr32/include/uapi/asm/sockios.h index 0802d742f97d..d04785453532 100644 --- a/arch/avr32/include/uapi/asm/sockios.h +++ b/arch/avr32/include/uapi/asm/sockios.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_SOCKIOS_H | 1 | #ifndef _UAPI__ASM_AVR32_SOCKIOS_H |
2 | #define __ASM_AVR32_SOCKIOS_H | 2 | #define _UAPI__ASM_AVR32_SOCKIOS_H |
3 | 3 | ||
4 | /* Socket-level I/O control calls. */ | 4 | /* Socket-level I/O control calls. */ |
5 | #define FIOSETOWN 0x8901 | 5 | #define FIOSETOWN 0x8901 |
@@ -10,4 +10,4 @@ | |||
10 | #define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ | 10 | #define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ |
11 | #define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ | 11 | #define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ |
12 | 12 | ||
13 | #endif /* __ASM_AVR32_SOCKIOS_H */ | 13 | #endif /* _UAPI__ASM_AVR32_SOCKIOS_H */ |
diff --git a/arch/avr32/include/uapi/asm/stat.h b/arch/avr32/include/uapi/asm/stat.h index e72881e10230..c06acef7fce7 100644 --- a/arch/avr32/include/uapi/asm/stat.h +++ b/arch/avr32/include/uapi/asm/stat.h | |||
@@ -5,8 +5,8 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #ifndef __ASM_AVR32_STAT_H | 8 | #ifndef _UAPI__ASM_AVR32_STAT_H |
9 | #define __ASM_AVR32_STAT_H | 9 | #define _UAPI__ASM_AVR32_STAT_H |
10 | 10 | ||
11 | struct __old_kernel_stat { | 11 | struct __old_kernel_stat { |
12 | unsigned short st_dev; | 12 | unsigned short st_dev; |
@@ -76,4 +76,4 @@ struct stat64 { | |||
76 | unsigned long __unused2; | 76 | unsigned long __unused2; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | #endif /* __ASM_AVR32_STAT_H */ | 79 | #endif /* _UAPI__ASM_AVR32_STAT_H */ |
diff --git a/arch/avr32/include/uapi/asm/statfs.h b/arch/avr32/include/uapi/asm/statfs.h deleted file mode 100644 index 2961bd18c50e..000000000000 --- a/arch/avr32/include/uapi/asm/statfs.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_AVR32_STATFS_H | ||
2 | #define __ASM_AVR32_STATFS_H | ||
3 | |||
4 | #include <asm-generic/statfs.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_STATFS_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/swab.h b/arch/avr32/include/uapi/asm/swab.h index 14cc737bbca6..1a03549e7dc5 100644 --- a/arch/avr32/include/uapi/asm/swab.h +++ b/arch/avr32/include/uapi/asm/swab.h | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * AVR32 byteswapping functions. | 2 | * AVR32 byteswapping functions. |
3 | */ | 3 | */ |
4 | #ifndef __ASM_AVR32_SWAB_H | 4 | #ifndef _UAPI__ASM_AVR32_SWAB_H |
5 | #define __ASM_AVR32_SWAB_H | 5 | #define _UAPI__ASM_AVR32_SWAB_H |
6 | 6 | ||
7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
8 | #include <linux/compiler.h> | 8 | #include <linux/compiler.h> |
@@ -32,4 +32,4 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | |||
32 | #define __arch_swab32 __arch_swab32 | 32 | #define __arch_swab32 __arch_swab32 |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | #endif /* __ASM_AVR32_SWAB_H */ | 35 | #endif /* _UAPI__ASM_AVR32_SWAB_H */ |
diff --git a/arch/avr32/include/uapi/asm/termbits.h b/arch/avr32/include/uapi/asm/termbits.h index 366adc5ebb10..32789ccb38f8 100644 --- a/arch/avr32/include/uapi/asm/termbits.h +++ b/arch/avr32/include/uapi/asm/termbits.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef __ASM_AVR32_TERMBITS_H | 1 | #ifndef _UAPI__ASM_AVR32_TERMBITS_H |
2 | #define __ASM_AVR32_TERMBITS_H | 2 | #define _UAPI__ASM_AVR32_TERMBITS_H |
3 | 3 | ||
4 | #include <linux/posix_types.h> | 4 | #include <linux/posix_types.h> |
5 | 5 | ||
@@ -193,4 +193,4 @@ struct ktermios { | |||
193 | #define TCSADRAIN 1 | 193 | #define TCSADRAIN 1 |
194 | #define TCSAFLUSH 2 | 194 | #define TCSAFLUSH 2 |
195 | 195 | ||
196 | #endif /* __ASM_AVR32_TERMBITS_H */ | 196 | #endif /* _UAPI__ASM_AVR32_TERMBITS_H */ |
diff --git a/arch/avr32/include/uapi/asm/termios.h b/arch/avr32/include/uapi/asm/termios.h index b8ef8ea63352..c8a0081556c4 100644 --- a/arch/avr32/include/uapi/asm/termios.h +++ b/arch/avr32/include/uapi/asm/termios.h | |||
@@ -46,5 +46,4 @@ struct termio { | |||
46 | 46 | ||
47 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | 47 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ |
48 | 48 | ||
49 | |||
50 | #endif /* _UAPI__ASM_AVR32_TERMIOS_H */ | 49 | #endif /* _UAPI__ASM_AVR32_TERMIOS_H */ |
diff --git a/arch/avr32/include/uapi/asm/types.h b/arch/avr32/include/uapi/asm/types.h index bb34ad349dfc..7c986c4e99b5 100644 --- a/arch/avr32/include/uapi/asm/types.h +++ b/arch/avr32/include/uapi/asm/types.h | |||
@@ -5,4 +5,9 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #ifndef _UAPI__ASM_AVR32_TYPES_H | ||
9 | #define _UAPI__ASM_AVR32_TYPES_H | ||
10 | |||
8 | #include <asm-generic/int-ll64.h> | 11 | #include <asm-generic/int-ll64.h> |
12 | |||
13 | #endif /* _UAPI__ASM_AVR32_TYPES_H */ | ||
diff --git a/arch/avr32/include/uapi/asm/unistd.h b/arch/avr32/include/uapi/asm/unistd.h index 3eaa68753adb..8822bf46ddc6 100644 --- a/arch/avr32/include/uapi/asm/unistd.h +++ b/arch/avr32/include/uapi/asm/unistd.h | |||
@@ -301,5 +301,4 @@ | |||
301 | #define __NR_eventfd 281 | 301 | #define __NR_eventfd 281 |
302 | #define __NR_setns 283 | 302 | #define __NR_setns 283 |
303 | 303 | ||
304 | |||
305 | #endif /* _UAPI__ASM_AVR32_UNISTD_H */ | 304 | #endif /* _UAPI__ASM_AVR32_UNISTD_H */ |
diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S index 9899d3cc6f03..7301f4806bbe 100644 --- a/arch/avr32/kernel/entry-avr32b.S +++ b/arch/avr32/kernel/entry-avr32b.S | |||
@@ -401,9 +401,10 @@ handle_critical: | |||
401 | /* We should never get here... */ | 401 | /* We should never get here... */ |
402 | bad_return: | 402 | bad_return: |
403 | sub r12, pc, (. - 1f) | 403 | sub r12, pc, (. - 1f) |
404 | bral panic | 404 | lddpc pc, 2f |
405 | .align 2 | 405 | .align 2 |
406 | 1: .asciz "Return from critical exception!" | 406 | 1: .asciz "Return from critical exception!" |
407 | 2: .long panic | ||
407 | 408 | ||
408 | .align 1 | 409 | .align 1 |
409 | do_bus_error_write: | 410 | do_bus_error_write: |
diff --git a/arch/avr32/kernel/head.S b/arch/avr32/kernel/head.S index 6163bd0acb95..59eae6dfbed2 100644 --- a/arch/avr32/kernel/head.S +++ b/arch/avr32/kernel/head.S | |||
@@ -10,33 +10,13 @@ | |||
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | 11 | ||
12 | #include <asm/page.h> | 12 | #include <asm/page.h> |
13 | #include <asm/thread_info.h> | ||
14 | #include <asm/sysreg.h> | ||
15 | 13 | ||
16 | .section .init.text,"ax" | 14 | .section .init.text,"ax" |
17 | .global kernel_entry | 15 | .global kernel_entry |
18 | kernel_entry: | 16 | kernel_entry: |
19 | /* Initialize status register */ | ||
20 | lddpc r0, init_sr | ||
21 | mtsr SYSREG_SR, r0 | ||
22 | |||
23 | /* Set initial stack pointer */ | ||
24 | lddpc sp, stack_addr | ||
25 | sub sp, -THREAD_SIZE | ||
26 | |||
27 | #ifdef CONFIG_FRAME_POINTER | ||
28 | /* Mark last stack frame */ | ||
29 | mov lr, 0 | ||
30 | mov r7, 0 | ||
31 | #endif | ||
32 | |||
33 | /* Start the show */ | 17 | /* Start the show */ |
34 | lddpc pc, kernel_start_addr | 18 | lddpc pc, kernel_start_addr |
35 | 19 | ||
36 | .align 2 | 20 | .align 2 |
37 | init_sr: | ||
38 | .long 0x007f0000 /* Supervisor mode, everything masked */ | ||
39 | stack_addr: | ||
40 | .long init_thread_union | ||
41 | kernel_start_addr: | 21 | kernel_start_addr: |
42 | .long start_kernel | 22 | .long start_kernel |