diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-10 16:51:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-10 16:51:06 -0500 |
commit | 98368ab436538103a557fc1f15f54afd8aab6712 (patch) | |
tree | 47d184f6117f96abf2f6f828db71b1d56b30313b | |
parent | ab0475df5ce45d80a9e5f056cbad3a58e4930206 (diff) | |
parent | a01d37d914f98c430854bbae2402e6f51d9a8d0b (diff) |
Merge tag 'microblaze-3.20-rc1' of git://git.monstr.eu/linux-2.6-microblaze
Pull Microblaze pupdates from Michal Simek:
- Remove various compilation errors
- Various code cleanup patches
- Add missing MB versions/architectures for autodetection
* tag 'microblaze-3.20-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze: Remove *.dtb files in make clean
microblaze: whitespace fix
microblaze/uaccess: fix sparse errors
microblaze: intc: Reformat output
microblaze: intc: Refactor DT sanity check
microblaze: intc: Don't override error codes
microblaze: Add target architecture
microblaze: Add missing PVR version codes
microblaze: Fix variable types to remove W=1 warning
microblaze: Use unsigned type for limit comparison in cache.c
microblaze: Use unsigned type for proper comparison in cpuinfo*.c
microblaze: Use unsigned type for "for" loop because of comparison-kgdb.c
microblaze: Change extern inline to static inline
microblaze: Mark get_frame_size as static
microblaze: Use unsigned return type in do_syscall_trace_enter
microblaze: Declare microblaze_kgdb_break in header
microblaze: Remove unused prom header from reset.c
microblaze: Remove unused prom_parse.c
microblaze: Wire-up execveat syscall
microblaze: Use empty asm-generic/linkage.h
23 files changed, 49 insertions, 88 deletions
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile index 8e211cc28dac..91d2068da1b9 100644 --- a/arch/microblaze/boot/Makefile +++ b/arch/microblaze/boot/Makefile | |||
@@ -34,5 +34,4 @@ $(obj)/simpleImage.%: vmlinux FORCE | |||
34 | $(call if_changed,strip) | 34 | $(call if_changed,strip) |
35 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' | 35 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' |
36 | 36 | ||
37 | 37 | clean-files += simpleImage.*.unstrip linux.bin.ub dts/*.dtb | |
38 | clean-files += simpleImage.*.unstrip linux.bin.ub | ||
diff --git a/arch/microblaze/boot/dts/Makefile b/arch/microblaze/boot/dts/Makefile index c4982d16e555..a3d2e42c3c97 100644 --- a/arch/microblaze/boot/dts/Makefile +++ b/arch/microblaze/boot/dts/Makefile | |||
@@ -16,5 +16,3 @@ quiet_cmd_cp = CP $< $@$2 | |||
16 | 16 | ||
17 | # Rule to build device tree blobs | 17 | # Rule to build device tree blobs |
18 | DTC_FLAGS := -p 1024 | 18 | DTC_FLAGS := -p 1024 |
19 | |||
20 | clean-files += *.dtb | ||
diff --git a/arch/microblaze/include/asm/delay.h b/arch/microblaze/include/asm/delay.h index 60cb39deb533..ea2a9cd9b159 100644 --- a/arch/microblaze/include/asm/delay.h +++ b/arch/microblaze/include/asm/delay.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/param.h> | 16 | #include <linux/param.h> |
17 | 17 | ||
18 | extern inline void __delay(unsigned long loops) | 18 | static inline void __delay(unsigned long loops) |
19 | { | 19 | { |
20 | asm volatile ("# __delay \n\t" \ | 20 | asm volatile ("# __delay \n\t" \ |
21 | "1: addi %0, %0, -1\t\n" \ | 21 | "1: addi %0, %0, -1\t\n" \ |
@@ -43,7 +43,7 @@ extern inline void __delay(unsigned long loops) | |||
43 | 43 | ||
44 | extern unsigned long loops_per_jiffy; | 44 | extern unsigned long loops_per_jiffy; |
45 | 45 | ||
46 | extern inline void __udelay(unsigned int x) | 46 | static inline void __udelay(unsigned int x) |
47 | { | 47 | { |
48 | 48 | ||
49 | unsigned long long tmp = | 49 | unsigned long long tmp = |
diff --git a/arch/microblaze/include/asm/kgdb.h b/arch/microblaze/include/asm/kgdb.h index 78b17d40b235..ad27acb2b15f 100644 --- a/arch/microblaze/include/asm/kgdb.h +++ b/arch/microblaze/include/asm/kgdb.h | |||
@@ -23,6 +23,9 @@ static inline void arch_kgdb_breakpoint(void) | |||
23 | __asm__ __volatile__("brki r16, 0x18;"); | 23 | __asm__ __volatile__("brki r16, 0x18;"); |
24 | } | 24 | } |
25 | 25 | ||
26 | struct pt_regs; | ||
27 | asmlinkage void microblaze_kgdb_break(struct pt_regs *regs); | ||
28 | |||
26 | #endif /* __ASSEMBLY__ */ | 29 | #endif /* __ASSEMBLY__ */ |
27 | #endif /* __MICROBLAZE_KGDB_H__ */ | 30 | #endif /* __MICROBLAZE_KGDB_H__ */ |
28 | #endif /* __KERNEL__ */ | 31 | #endif /* __KERNEL__ */ |
diff --git a/arch/microblaze/include/asm/linkage.h b/arch/microblaze/include/asm/linkage.h index 3a8e36d057eb..0540bbaad897 100644 --- a/arch/microblaze/include/asm/linkage.h +++ b/arch/microblaze/include/asm/linkage.h | |||
@@ -1,15 +1 @@ | |||
1 | /* | #include <asm-generic/linkage.h> | |
2 | * Copyright (C) 2006 Atmark Techno, Inc. | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | */ | ||
8 | |||
9 | #ifndef _ASM_MICROBLAZE_LINKAGE_H | ||
10 | #define _ASM_MICROBLAZE_LINKAGE_H | ||
11 | |||
12 | #define __ALIGN .align 4 | ||
13 | #define __ALIGN_STR ".align 4" | ||
14 | |||
15 | #endif /* _ASM_MICROBLAZE_LINKAGE_H */ | ||
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h index 7fdf7fabc7d7..61436d69775c 100644 --- a/arch/microblaze/include/asm/pgalloc.h +++ b/arch/microblaze/include/asm/pgalloc.h | |||
@@ -60,7 +60,7 @@ extern unsigned long get_zero_page_fast(void); | |||
60 | 60 | ||
61 | extern void __bad_pte(pmd_t *pmd); | 61 | extern void __bad_pte(pmd_t *pmd); |
62 | 62 | ||
63 | extern inline pgd_t *get_pgd_slow(void) | 63 | static inline pgd_t *get_pgd_slow(void) |
64 | { | 64 | { |
65 | pgd_t *ret; | 65 | pgd_t *ret; |
66 | 66 | ||
@@ -70,7 +70,7 @@ extern inline pgd_t *get_pgd_slow(void) | |||
70 | return ret; | 70 | return ret; |
71 | } | 71 | } |
72 | 72 | ||
73 | extern inline pgd_t *get_pgd_fast(void) | 73 | static inline pgd_t *get_pgd_fast(void) |
74 | { | 74 | { |
75 | unsigned long *ret; | 75 | unsigned long *ret; |
76 | 76 | ||
@@ -84,14 +84,14 @@ extern inline pgd_t *get_pgd_fast(void) | |||
84 | return (pgd_t *)ret; | 84 | return (pgd_t *)ret; |
85 | } | 85 | } |
86 | 86 | ||
87 | extern inline void free_pgd_fast(pgd_t *pgd) | 87 | static inline void free_pgd_fast(pgd_t *pgd) |
88 | { | 88 | { |
89 | *(unsigned long **)pgd = pgd_quicklist; | 89 | *(unsigned long **)pgd = pgd_quicklist; |
90 | pgd_quicklist = (unsigned long *) pgd; | 90 | pgd_quicklist = (unsigned long *) pgd; |
91 | pgtable_cache_size++; | 91 | pgtable_cache_size++; |
92 | } | 92 | } |
93 | 93 | ||
94 | extern inline void free_pgd_slow(pgd_t *pgd) | 94 | static inline void free_pgd_slow(pgd_t *pgd) |
95 | { | 95 | { |
96 | free_page((unsigned long)pgd); | 96 | free_page((unsigned long)pgd); |
97 | } | 97 | } |
@@ -146,19 +146,19 @@ static inline pte_t *pte_alloc_one_fast(struct mm_struct *mm, | |||
146 | return (pte_t *)ret; | 146 | return (pte_t *)ret; |
147 | } | 147 | } |
148 | 148 | ||
149 | extern inline void pte_free_fast(pte_t *pte) | 149 | static inline void pte_free_fast(pte_t *pte) |
150 | { | 150 | { |
151 | *(unsigned long **)pte = pte_quicklist; | 151 | *(unsigned long **)pte = pte_quicklist; |
152 | pte_quicklist = (unsigned long *) pte; | 152 | pte_quicklist = (unsigned long *) pte; |
153 | pgtable_cache_size++; | 153 | pgtable_cache_size++; |
154 | } | 154 | } |
155 | 155 | ||
156 | extern inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | 156 | static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) |
157 | { | 157 | { |
158 | free_page((unsigned long)pte); | 158 | free_page((unsigned long)pte); |
159 | } | 159 | } |
160 | 160 | ||
161 | extern inline void pte_free_slow(struct page *ptepage) | 161 | static inline void pte_free_slow(struct page *ptepage) |
162 | { | 162 | { |
163 | __free_page(ptepage); | 163 | __free_page(ptepage); |
164 | } | 164 | } |
diff --git a/arch/microblaze/include/asm/syscall.h b/arch/microblaze/include/asm/syscall.h index 53cfaf34c343..04a5bece8168 100644 --- a/arch/microblaze/include/asm/syscall.h +++ b/arch/microblaze/include/asm/syscall.h | |||
@@ -97,7 +97,7 @@ static inline void syscall_set_arguments(struct task_struct *task, | |||
97 | microblaze_set_syscall_arg(regs, i++, *args++); | 97 | microblaze_set_syscall_arg(regs, i++, *args++); |
98 | } | 98 | } |
99 | 99 | ||
100 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); | 100 | asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs); |
101 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); | 101 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); |
102 | 102 | ||
103 | static inline int syscall_get_arch(void) | 103 | static inline int syscall_get_arch(void) |
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h index 59a89a64a865..62942fd12672 100644 --- a/arch/microblaze/include/asm/uaccess.h +++ b/arch/microblaze/include/asm/uaccess.h | |||
@@ -220,7 +220,7 @@ extern long __user_bad(void); | |||
220 | } else { \ | 220 | } else { \ |
221 | __gu_err = -EFAULT; \ | 221 | __gu_err = -EFAULT; \ |
222 | } \ | 222 | } \ |
223 | x = (typeof(*(ptr)))__gu_val; \ | 223 | x = (__force typeof(*(ptr)))__gu_val; \ |
224 | __gu_err; \ | 224 | __gu_err; \ |
225 | }) | 225 | }) |
226 | 226 | ||
@@ -242,7 +242,7 @@ extern long __user_bad(void); | |||
242 | default: \ | 242 | default: \ |
243 | /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\ | 243 | /* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\ |
244 | } \ | 244 | } \ |
245 | x = (__typeof__(*(ptr))) __gu_val; \ | 245 | x = (__force __typeof__(*(ptr))) __gu_val; \ |
246 | __gu_err; \ | 246 | __gu_err; \ |
247 | }) | 247 | }) |
248 | 248 | ||
@@ -306,7 +306,7 @@ extern long __user_bad(void); | |||
306 | 306 | ||
307 | #define __put_user_check(x, ptr, size) \ | 307 | #define __put_user_check(x, ptr, size) \ |
308 | ({ \ | 308 | ({ \ |
309 | typeof(*(ptr)) volatile __pu_val = x; \ | 309 | typeof(*(ptr)) volatile __pu_val = x; \ |
310 | typeof(*(ptr)) __user *__pu_addr = (ptr); \ | 310 | typeof(*(ptr)) __user *__pu_addr = (ptr); \ |
311 | int __pu_err = 0; \ | 311 | int __pu_err = 0; \ |
312 | \ | 312 | \ |
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h index 0a53362d5548..76ed17b56fea 100644 --- a/arch/microblaze/include/asm/unistd.h +++ b/arch/microblaze/include/asm/unistd.h | |||
@@ -38,6 +38,6 @@ | |||
38 | 38 | ||
39 | #endif /* __ASSEMBLY__ */ | 39 | #endif /* __ASSEMBLY__ */ |
40 | 40 | ||
41 | #define __NR_syscalls 388 | 41 | #define __NR_syscalls 389 |
42 | 42 | ||
43 | #endif /* _ASM_MICROBLAZE_UNISTD_H */ | 43 | #endif /* _ASM_MICROBLAZE_UNISTD_H */ |
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h index c712677f8a2a..32850c73be09 100644 --- a/arch/microblaze/include/uapi/asm/unistd.h +++ b/arch/microblaze/include/uapi/asm/unistd.h | |||
@@ -403,5 +403,6 @@ | |||
403 | #define __NR_getrandom 385 | 403 | #define __NR_getrandom 385 |
404 | #define __NR_memfd_create 386 | 404 | #define __NR_memfd_create 386 |
405 | #define __NR_bpf 387 | 405 | #define __NR_bpf 387 |
406 | #define __NR_execveat 388 | ||
406 | 407 | ||
407 | #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ | 408 | #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ |
diff --git a/arch/microblaze/kernel/Makefile b/arch/microblaze/kernel/Makefile index 08d50cc55e7d..f08bacaf8a95 100644 --- a/arch/microblaze/kernel/Makefile +++ b/arch/microblaze/kernel/Makefile | |||
@@ -16,7 +16,7 @@ extra-y := head.o vmlinux.lds | |||
16 | 16 | ||
17 | obj-y += dma.o exceptions.o \ | 17 | obj-y += dma.o exceptions.o \ |
18 | hw_exception_handler.o intc.o irq.o \ | 18 | hw_exception_handler.o intc.o irq.o \ |
19 | platform.o process.o prom.o prom_parse.o ptrace.o \ | 19 | platform.o process.o prom.o ptrace.o \ |
20 | reset.o setup.o signal.o sys_microblaze.o timer.o traps.o unwind.o | 20 | reset.o setup.o signal.o sys_microblaze.o timer.o traps.o unwind.o |
21 | 21 | ||
22 | obj-y += cpu/ | 22 | obj-y += cpu/ |
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c index a6e44410672d..0bde47e4fa69 100644 --- a/arch/microblaze/kernel/cpu/cache.c +++ b/arch/microblaze/kernel/cpu/cache.c | |||
@@ -140,10 +140,10 @@ do { \ | |||
140 | /* It is used only first parameter for OP - for wic, wdc */ | 140 | /* It is used only first parameter for OP - for wic, wdc */ |
141 | #define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ | 141 | #define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ |
142 | do { \ | 142 | do { \ |
143 | int volatile temp = 0; \ | 143 | unsigned int volatile temp = 0; \ |
144 | int align = ~(line_length - 1); \ | 144 | unsigned int align = ~(line_length - 1); \ |
145 | end = ((end & align) == end) ? end - line_length : end & align; \ | 145 | end = ((end & align) == end) ? end - line_length : end & align; \ |
146 | WARN_ON(end - start < 0); \ | 146 | WARN_ON(end < start); \ |
147 | \ | 147 | \ |
148 | __asm__ __volatile__ (" 1: " #op " %1, r0;" \ | 148 | __asm__ __volatile__ (" 1: " #op " %1, r0;" \ |
149 | "cmpu %0, %1, %2;" \ | 149 | "cmpu %0, %1, %2;" \ |
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c index 93c26cf50de5..a32daec96c12 100644 --- a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c +++ b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c | |||
@@ -33,7 +33,7 @@ | |||
33 | void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) | 33 | void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) |
34 | { | 34 | { |
35 | struct pvr_s pvr; | 35 | struct pvr_s pvr; |
36 | int temp; /* for saving temp value */ | 36 | u32 temp; /* for saving temp value */ |
37 | get_pvr(&pvr); | 37 | get_pvr(&pvr); |
38 | 38 | ||
39 | CI(ver_code, VERSION); | 39 | CI(ver_code, VERSION); |
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-static.c b/arch/microblaze/kernel/cpu/cpuinfo-static.c index 4854285b26e7..85dbda4a08a8 100644 --- a/arch/microblaze/kernel/cpu/cpuinfo-static.c +++ b/arch/microblaze/kernel/cpu/cpuinfo-static.c | |||
@@ -22,7 +22,7 @@ static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER; | |||
22 | 22 | ||
23 | void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu) | 23 | void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu) |
24 | { | 24 | { |
25 | int i = 0; | 25 | u32 i = 0; |
26 | 26 | ||
27 | ci->use_instr = | 27 | ci->use_instr = |
28 | (fcpu(cpu, "xlnx,use-barrel") ? PVR0_USE_BARREL_MASK : 0) | | 28 | (fcpu(cpu, "xlnx,use-barrel") ? PVR0_USE_BARREL_MASK : 0) | |
diff --git a/arch/microblaze/kernel/cpu/cpuinfo.c b/arch/microblaze/kernel/cpu/cpuinfo.c index 234acad79b9e..d1dd6e83d59b 100644 --- a/arch/microblaze/kernel/cpu/cpuinfo.c +++ b/arch/microblaze/kernel/cpu/cpuinfo.c | |||
@@ -41,8 +41,12 @@ const struct cpu_ver_key cpu_ver_lookup[] = { | |||
41 | {"8.40.a", 0x18}, | 41 | {"8.40.a", 0x18}, |
42 | {"8.40.b", 0x19}, | 42 | {"8.40.b", 0x19}, |
43 | {"8.50.a", 0x1a}, | 43 | {"8.50.a", 0x1a}, |
44 | {"8.50.b", 0x1c}, | ||
45 | {"8.50.c", 0x1e}, | ||
44 | {"9.0", 0x1b}, | 46 | {"9.0", 0x1b}, |
45 | {"9.1", 0x1d}, | 47 | {"9.1", 0x1d}, |
48 | {"9.2", 0x1f}, | ||
49 | {"9.3", 0x20}, | ||
46 | {NULL, 0}, | 50 | {NULL, 0}, |
47 | }; | 51 | }; |
48 | 52 | ||
@@ -61,11 +65,14 @@ const struct family_string_key family_string_lookup[] = { | |||
61 | {"spartan3adsp", 0xc}, | 65 | {"spartan3adsp", 0xc}, |
62 | {"spartan6", 0xd}, | 66 | {"spartan6", 0xd}, |
63 | {"virtex6", 0xe}, | 67 | {"virtex6", 0xe}, |
68 | {"virtex7", 0xf}, | ||
64 | /* FIXME There is no key code defined for spartan2 */ | 69 | /* FIXME There is no key code defined for spartan2 */ |
65 | {"spartan2", 0xf0}, | 70 | {"spartan2", 0xf0}, |
66 | {"kintex7", 0x10}, | 71 | {"kintex7", 0x10}, |
67 | {"artix7", 0x11}, | 72 | {"artix7", 0x11}, |
68 | {"zynq7000", 0x12}, | 73 | {"zynq7000", 0x12}, |
74 | {"UltraScale Virtex", 0x13}, | ||
75 | {"UltraScale Kintex", 0x14}, | ||
69 | {NULL, 0}, | 76 | {NULL, 0}, |
70 | }; | 77 | }; |
71 | 78 | ||
diff --git a/arch/microblaze/kernel/intc.c b/arch/microblaze/kernel/intc.c index 15c7c12ea0e7..719feee1e043 100644 --- a/arch/microblaze/kernel/intc.c +++ b/arch/microblaze/kernel/intc.c | |||
@@ -148,17 +148,17 @@ static int __init xilinx_intc_of_init(struct device_node *intc, | |||
148 | ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &nr_irq); | 148 | ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &nr_irq); |
149 | if (ret < 0) { | 149 | if (ret < 0) { |
150 | pr_err("%s: unable to read xlnx,num-intr-inputs\n", __func__); | 150 | pr_err("%s: unable to read xlnx,num-intr-inputs\n", __func__); |
151 | return -EINVAL; | 151 | return ret; |
152 | } | 152 | } |
153 | 153 | ||
154 | ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &intr_mask); | 154 | ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &intr_mask); |
155 | if (ret < 0) { | 155 | if (ret < 0) { |
156 | pr_err("%s: unable to read xlnx,kind-of-intr\n", __func__); | 156 | pr_err("%s: unable to read xlnx,kind-of-intr\n", __func__); |
157 | return -EINVAL; | 157 | return ret; |
158 | } | 158 | } |
159 | 159 | ||
160 | if (intr_mask > (u32)((1ULL << nr_irq) - 1)) | 160 | if (intr_mask >> nr_irq) |
161 | pr_info(" ERROR: Mismatch in kind-of-intr param\n"); | 161 | pr_warn("%s: mismatch in kind-of-intr param\n", __func__); |
162 | 162 | ||
163 | pr_info("%s: num_irq=%d, edge=0x%x\n", | 163 | pr_info("%s: num_irq=%d, edge=0x%x\n", |
164 | intc->full_name, nr_irq, intr_mask); | 164 | intc->full_name, nr_irq, intr_mask); |
diff --git a/arch/microblaze/kernel/kgdb.c b/arch/microblaze/kernel/kgdb.c index 09a5e8286137..8736af5806ae 100644 --- a/arch/microblaze/kernel/kgdb.c +++ b/arch/microblaze/kernel/kgdb.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <asm/cacheflush.h> | 13 | #include <asm/cacheflush.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/kgdb.h> | ||
15 | #include <asm/pvr.h> | 16 | #include <asm/pvr.h> |
16 | 17 | ||
17 | #define GDB_REG 0 | 18 | #define GDB_REG 0 |
@@ -35,9 +36,10 @@ struct pvr_s pvr; | |||
35 | 36 | ||
36 | void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) | 37 | void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) |
37 | { | 38 | { |
38 | int i; | 39 | unsigned int i; |
39 | unsigned long *pt_regb = (unsigned long *)regs; | 40 | unsigned long *pt_regb = (unsigned long *)regs; |
40 | int temp; | 41 | int temp; |
42 | |||
41 | /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ | 43 | /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ |
42 | for (i = 0; i < (sizeof(struct pt_regs) / 4) - 1; i++) | 44 | for (i = 0; i < (sizeof(struct pt_regs) / 4) - 1; i++) |
43 | gdb_regs[i] = pt_regb[i]; | 45 | gdb_regs[i] = pt_regb[i]; |
@@ -67,7 +69,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) | |||
67 | 69 | ||
68 | void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | 70 | void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) |
69 | { | 71 | { |
70 | int i; | 72 | unsigned int i; |
71 | unsigned long *pt_regb = (unsigned long *)regs; | 73 | unsigned long *pt_regb = (unsigned long *)regs; |
72 | 74 | ||
73 | /* pt_regs and gdb_regs have the same 37 values. | 75 | /* pt_regs and gdb_regs have the same 37 values. |
@@ -77,7 +79,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | |||
77 | pt_regb[i] = gdb_regs[i]; | 79 | pt_regb[i] = gdb_regs[i]; |
78 | } | 80 | } |
79 | 81 | ||
80 | void microblaze_kgdb_break(struct pt_regs *regs) | 82 | asmlinkage void microblaze_kgdb_break(struct pt_regs *regs) |
81 | { | 83 | { |
82 | if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0) | 84 | if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0) |
83 | return; | 85 | return; |
@@ -91,7 +93,7 @@ void microblaze_kgdb_break(struct pt_regs *regs) | |||
91 | /* untested */ | 93 | /* untested */ |
92 | void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p) | 94 | void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p) |
93 | { | 95 | { |
94 | int i; | 96 | unsigned int i; |
95 | unsigned long *pt_regb = (unsigned long *)(p->thread.regs); | 97 | unsigned long *pt_regb = (unsigned long *)(p->thread.regs); |
96 | 98 | ||
97 | /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ | 99 | /* registers r0 - r31, pc, msr, ear, esr, fsr + do not save pt_mode */ |
diff --git a/arch/microblaze/kernel/prom_parse.c b/arch/microblaze/kernel/prom_parse.c deleted file mode 100644 index 068762f55fd6..000000000000 --- a/arch/microblaze/kernel/prom_parse.c +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | #undef DEBUG | ||
2 | |||
3 | #include <linux/export.h> | ||
4 | #include <linux/kernel.h> | ||
5 | #include <linux/string.h> | ||
6 | #include <linux/ioport.h> | ||
7 | #include <linux/etherdevice.h> | ||
8 | #include <linux/of_address.h> | ||
9 | #include <asm/prom.h> | ||
10 | |||
11 | void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop, | ||
12 | unsigned long *busno, unsigned long *phys, unsigned long *size) | ||
13 | { | ||
14 | const u32 *dma_window; | ||
15 | u32 cells; | ||
16 | const unsigned char *prop; | ||
17 | |||
18 | dma_window = dma_window_prop; | ||
19 | |||
20 | /* busno is always one cell */ | ||
21 | *busno = *(dma_window++); | ||
22 | |||
23 | prop = of_get_property(dn, "ibm,#dma-address-cells", NULL); | ||
24 | if (!prop) | ||
25 | prop = of_get_property(dn, "#address-cells", NULL); | ||
26 | |||
27 | cells = prop ? *(u32 *)prop : of_n_addr_cells(dn); | ||
28 | *phys = of_read_number(dma_window, cells); | ||
29 | |||
30 | dma_window += cells; | ||
31 | |||
32 | prop = of_get_property(dn, "ibm,#dma-size-cells", NULL); | ||
33 | cells = prop ? *(u32 *)prop : of_n_size_cells(dn); | ||
34 | *size = of_read_number(dma_window, cells); | ||
35 | } | ||
diff --git a/arch/microblaze/kernel/ptrace.c b/arch/microblaze/kernel/ptrace.c index bb10637ce688..8cfa98cadf3d 100644 --- a/arch/microblaze/kernel/ptrace.c +++ b/arch/microblaze/kernel/ptrace.c | |||
@@ -132,9 +132,9 @@ long arch_ptrace(struct task_struct *child, long request, | |||
132 | return rval; | 132 | return rval; |
133 | } | 133 | } |
134 | 134 | ||
135 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | 135 | asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs) |
136 | { | 136 | { |
137 | long ret = 0; | 137 | unsigned long ret = 0; |
138 | 138 | ||
139 | secure_computing_strict(regs->r12); | 139 | secure_computing_strict(regs->r12); |
140 | 140 | ||
diff --git a/arch/microblaze/kernel/reset.c b/arch/microblaze/kernel/reset.c index fbe58c6554a8..bab4c8330ef4 100644 --- a/arch/microblaze/kernel/reset.c +++ b/arch/microblaze/kernel/reset.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | #include <linux/init.h> | 10 | #include <linux/init.h> |
11 | #include <linux/of_platform.h> | 11 | #include <linux/of_platform.h> |
12 | #include <asm/prom.h> | ||
13 | 12 | ||
14 | /* Trigger specific functions */ | 13 | /* Trigger specific functions */ |
15 | #ifdef CONFIG_GPIOLIB | 14 | #ifdef CONFIG_GPIOLIB |
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c index 8955a3829cf0..235706055b7f 100644 --- a/arch/microblaze/kernel/signal.c +++ b/arch/microblaze/kernel/signal.c | |||
@@ -158,7 +158,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, | |||
158 | { | 158 | { |
159 | struct rt_sigframe __user *frame; | 159 | struct rt_sigframe __user *frame; |
160 | int err = 0, sig = ksig->sig; | 160 | int err = 0, sig = ksig->sig; |
161 | int signal; | 161 | unsigned long signal; |
162 | unsigned long address = 0; | 162 | unsigned long address = 0; |
163 | #ifdef CONFIG_MMU | 163 | #ifdef CONFIG_MMU |
164 | pmd_t *pmdp; | 164 | pmd_t *pmdp; |
@@ -174,7 +174,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, | |||
174 | && current_thread_info()->exec_domain->signal_invmap | 174 | && current_thread_info()->exec_domain->signal_invmap |
175 | && sig < 32 | 175 | && sig < 32 |
176 | ? current_thread_info()->exec_domain->signal_invmap[sig] | 176 | ? current_thread_info()->exec_domain->signal_invmap[sig] |
177 | : sig; | 177 | : (unsigned long)sig; |
178 | 178 | ||
179 | if (ksig->ka.sa.sa_flags & SA_SIGINFO) | 179 | if (ksig->ka.sa.sa_flags & SA_SIGINFO) |
180 | err |= copy_siginfo_to_user(&frame->info, &ksig->info); | 180 | err |= copy_siginfo_to_user(&frame->info, &ksig->info); |
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S index 0166e890486c..29c8568ec55c 100644 --- a/arch/microblaze/kernel/syscall_table.S +++ b/arch/microblaze/kernel/syscall_table.S | |||
@@ -388,3 +388,4 @@ ENTRY(sys_call_table) | |||
388 | .long sys_getrandom /* 385 */ | 388 | .long sys_getrandom /* 385 */ |
389 | .long sys_memfd_create | 389 | .long sys_memfd_create |
390 | .long sys_bpf | 390 | .long sys_bpf |
391 | .long sys_execveat | ||
diff --git a/arch/microblaze/kernel/unwind.c b/arch/microblaze/kernel/unwind.c index 1f7b8d449668..61c04eed14d5 100644 --- a/arch/microblaze/kernel/unwind.c +++ b/arch/microblaze/kernel/unwind.c | |||
@@ -59,7 +59,7 @@ struct stack_trace; | |||
59 | * | 59 | * |
60 | * Return - Number of stack bytes the instruction reserves or reclaims | 60 | * Return - Number of stack bytes the instruction reserves or reclaims |
61 | */ | 61 | */ |
62 | inline long get_frame_size(unsigned long instr) | 62 | static inline long get_frame_size(unsigned long instr) |
63 | { | 63 | { |
64 | return abs((s16)(instr & 0xFFFF)); | 64 | return abs((s16)(instr & 0xFFFF)); |
65 | } | 65 | } |