Commit 0d43f5123d1456669b3bbc69854faf6fd5b14caa
Exists in
master
and in
7 other branches
Merge branch 'sh/for-2.6.32' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* 'sh/for-2.6.32' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Fix hugetlbfs dependencies for SH-3 && MMU configurations. sh: Document uImage.bin target in archhelp. sh: add uImage.bin target sh: rsk7203 CONFIG_MTD=n fix sh: Check for return_to_handler when unwinding the stack sh: Build fix: define more __movmem* symbols sh: __irq_entry annotate do_IRQ(). Fix up sh/powerpc conflicts in fs/Kconfig
Showing 10 changed files Side-by-side Diff
arch/sh/Kconfig
... | ... | @@ -121,6 +121,9 @@ |
121 | 121 | bool |
122 | 122 | select ARCH_SUSPEND_POSSIBLE |
123 | 123 | |
124 | +config SYS_SUPPORTS_HUGETLBFS | |
125 | + bool | |
126 | + | |
124 | 127 | config SYS_SUPPORTS_SMP |
125 | 128 | bool |
126 | 129 | |
... | ... | @@ -195,6 +198,7 @@ |
195 | 198 | select CPU_HAS_SR_RB |
196 | 199 | select CPU_HAS_FPU if !CPU_SH4AL_DSP |
197 | 200 | select SYS_SUPPORTS_TMU |
201 | + select SYS_SUPPORTS_HUGETLBFS if MMU | |
198 | 202 | |
199 | 203 | config CPU_SH4A |
200 | 204 | bool |
... | ... | @@ -209,6 +213,7 @@ |
209 | 213 | bool |
210 | 214 | select CPU_HAS_FPU |
211 | 215 | select SYS_SUPPORTS_TMU |
216 | + select SYS_SUPPORTS_HUGETLBFS if MMU | |
212 | 217 | |
213 | 218 | config CPU_SHX2 |
214 | 219 | bool |
arch/sh/Makefile
... | ... | @@ -199,7 +199,7 @@ |
199 | 199 | libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) |
200 | 200 | libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y) |
201 | 201 | |
202 | -BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec \ | |
202 | +BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \ | |
203 | 203 | zImage vmlinux.srec romImage |
204 | 204 | PHONY += maketools $(BOOT_TARGETS) FORCE |
205 | 205 | |
... | ... | @@ -225,6 +225,7 @@ |
225 | 225 | @echo ' vmlinux.srec - Create an ELF S-record' |
226 | 226 | @echo '* uImage - Alias to bootable U-Boot image' |
227 | 227 | @echo ' uImage.srec - Create an S-record for U-Boot' |
228 | + @echo ' uImage.bin - Kernel-only image for U-Boot (bin)' | |
228 | 229 | @echo '* uImage.gz - Kernel-only image for U-Boot (gzip)' |
229 | 230 | @echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)' |
230 | 231 | @echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)' |
arch/sh/boards/mach-rsk/devices-rsk7203.c
... | ... | @@ -11,10 +11,6 @@ |
11 | 11 | #include <linux/types.h> |
12 | 12 | #include <linux/platform_device.h> |
13 | 13 | #include <linux/interrupt.h> |
14 | -#include <linux/mtd/mtd.h> | |
15 | -#include <linux/mtd/partitions.h> | |
16 | -#include <linux/mtd/physmap.h> | |
17 | -#include <linux/mtd/map.h> | |
18 | 14 | #include <linux/smsc911x.h> |
19 | 15 | #include <linux/gpio.h> |
20 | 16 | #include <linux/leds.h> |
arch/sh/boards/mach-rsk/setup.c
... | ... | @@ -15,14 +15,12 @@ |
15 | 15 | #include <linux/mtd/mtd.h> |
16 | 16 | #include <linux/mtd/partitions.h> |
17 | 17 | #include <linux/mtd/physmap.h> |
18 | +#ifdef CONFIG_MTD | |
18 | 19 | #include <linux/mtd/map.h> |
20 | +#endif | |
19 | 21 | #include <asm/machvec.h> |
20 | 22 | #include <asm/io.h> |
21 | 23 | |
22 | -static const char *probes[] = { "cmdlinepart", NULL }; | |
23 | - | |
24 | -static struct mtd_partition *parsed_partitions; | |
25 | - | |
26 | 24 | static struct mtd_partition rsk_partitions[] = { |
27 | 25 | { |
28 | 26 | .name = "Bootloader", |
... | ... | @@ -41,6 +39,8 @@ |
41 | 39 | }; |
42 | 40 | |
43 | 41 | static struct physmap_flash_data flash_data = { |
42 | + .parts = rsk_partitions, | |
43 | + .nr_parts = ARRAY_SIZE(rsk_partitions), | |
44 | 44 | .width = 2, |
45 | 45 | }; |
46 | 46 | |
... | ... | @@ -60,7 +60,8 @@ |
60 | 60 | }, |
61 | 61 | }; |
62 | 62 | |
63 | -static struct mtd_info *flash_mtd; | |
63 | +#ifdef CONFIG_MTD | |
64 | +static const char *probes[] = { "cmdlinepart", NULL }; | |
64 | 65 | |
65 | 66 | static struct map_info rsk_flash_map = { |
66 | 67 | .name = "RSK+ Flash", |
... | ... | @@ -68,6 +69,10 @@ |
68 | 69 | .bankwidth = 2, |
69 | 70 | }; |
70 | 71 | |
72 | +static struct mtd_info *flash_mtd; | |
73 | + | |
74 | +static struct mtd_partition *parsed_partitions; | |
75 | + | |
71 | 76 | static void __init set_mtd_partitions(void) |
72 | 77 | { |
73 | 78 | int nr_parts = 0; |
74 | 79 | |
... | ... | @@ -77,14 +82,14 @@ |
77 | 82 | nr_parts = parse_mtd_partitions(flash_mtd, probes, |
78 | 83 | &parsed_partitions, 0); |
79 | 84 | /* If there is no partition table, used the hard coded table */ |
80 | - if (nr_parts <= 0) { | |
81 | - flash_data.parts = rsk_partitions; | |
82 | - flash_data.nr_parts = ARRAY_SIZE(rsk_partitions); | |
83 | - } else { | |
85 | + if (nr_parts > 0) { | |
84 | 86 | flash_data.nr_parts = nr_parts; |
85 | 87 | flash_data.parts = parsed_partitions; |
86 | 88 | } |
87 | 89 | } |
90 | +#else | |
91 | +static inline void set_mtd_partitions(void) {} | |
92 | +#endif | |
88 | 93 | |
89 | 94 | static struct platform_device *rsk_devices[] __initdata = { |
90 | 95 | &flash_device, |
arch/sh/boot/Makefile
... | ... | @@ -20,11 +20,12 @@ |
20 | 20 | CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 |
21 | 21 | CONFIG_ENTRY_OFFSET ?= 0x00001000 |
22 | 22 | |
23 | +suffix-y := bin | |
23 | 24 | suffix-$(CONFIG_KERNEL_GZIP) := gz |
24 | 25 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 |
25 | 26 | suffix-$(CONFIG_KERNEL_LZMA) := lzma |
26 | 27 | |
27 | -targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma | |
28 | +targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma uImage.bin | |
28 | 29 | extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma |
29 | 30 | subdir- := compressed romimage |
30 | 31 | |
... | ... | @@ -87,6 +88,9 @@ |
87 | 88 | |
88 | 89 | $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma |
89 | 90 | $(call if_changed,uimage,lzma) |
91 | + | |
92 | +$(obj)/uImage.bin: $(obj)/vmlinux.bin | |
93 | + $(call if_changed,uimage,none) | |
90 | 94 | |
91 | 95 | OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec |
92 | 96 | $(obj)/vmlinux.srec: $(obj)/compressed/vmlinux |
arch/sh/kernel/dwarf.c
... | ... | @@ -20,6 +20,7 @@ |
20 | 20 | #include <linux/list.h> |
21 | 21 | #include <linux/mempool.h> |
22 | 22 | #include <linux/mm.h> |
23 | +#include <linux/ftrace.h> | |
23 | 24 | #include <asm/dwarf.h> |
24 | 25 | #include <asm/unwinder.h> |
25 | 26 | #include <asm/sections.h> |
... | ... | @@ -556,6 +557,27 @@ |
556 | 557 | */ |
557 | 558 | if (!pc && !prev) |
558 | 559 | pc = (unsigned long)current_text_addr(); |
560 | + | |
561 | +#ifdef CONFIG_FUNCTION_GRAPH_TRACER | |
562 | + /* | |
563 | + * If our stack has been patched by the function graph tracer | |
564 | + * then we might see the address of return_to_handler() where we | |
565 | + * expected to find the real return address. | |
566 | + */ | |
567 | + if (pc == (unsigned long)&return_to_handler) { | |
568 | + int index = current->curr_ret_stack; | |
569 | + | |
570 | + /* | |
571 | + * We currently have no way of tracking how many | |
572 | + * return_to_handler()'s we've seen. If there is more | |
573 | + * than one patched return address on our stack, | |
574 | + * complain loudly. | |
575 | + */ | |
576 | + WARN_ON(index > 0); | |
577 | + | |
578 | + pc = current->ret_stack[index].ret; | |
579 | + } | |
580 | +#endif | |
559 | 581 | |
560 | 582 | frame = mempool_alloc(dwarf_frame_pool, GFP_ATOMIC); |
561 | 583 | if (!frame) { |
arch/sh/kernel/irq.c
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | #include <linux/module.h> |
12 | 12 | #include <linux/kernel_stat.h> |
13 | 13 | #include <linux/seq_file.h> |
14 | +#include <linux/ftrace.h> | |
14 | 15 | #include <asm/processor.h> |
15 | 16 | #include <asm/machvec.h> |
16 | 17 | #include <asm/uaccess.h> |
... | ... | @@ -106,7 +107,7 @@ |
106 | 107 | static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; |
107 | 108 | #endif |
108 | 109 | |
109 | -asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) | |
110 | +asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs) | |
110 | 111 | { |
111 | 112 | struct pt_regs *old_regs = set_irq_regs(regs); |
112 | 113 | #ifdef CONFIG_IRQSTACKS |
arch/sh/kernel/sh_ksyms_32.c
... | ... | @@ -85,6 +85,20 @@ |
85 | 85 | DECLARE_EXPORT(__movstr_i4_odd); |
86 | 86 | DECLARE_EXPORT(__movstrSI12_i4); |
87 | 87 | DECLARE_EXPORT(__movmem); |
88 | +DECLARE_EXPORT(__movmemSI8); | |
89 | +DECLARE_EXPORT(__movmemSI12); | |
90 | +DECLARE_EXPORT(__movmemSI16); | |
91 | +DECLARE_EXPORT(__movmemSI20); | |
92 | +DECLARE_EXPORT(__movmemSI24); | |
93 | +DECLARE_EXPORT(__movmemSI28); | |
94 | +DECLARE_EXPORT(__movmemSI32); | |
95 | +DECLARE_EXPORT(__movmemSI36); | |
96 | +DECLARE_EXPORT(__movmemSI40); | |
97 | +DECLARE_EXPORT(__movmemSI44); | |
98 | +DECLARE_EXPORT(__movmemSI48); | |
99 | +DECLARE_EXPORT(__movmemSI52); | |
100 | +DECLARE_EXPORT(__movmemSI56); | |
101 | +DECLARE_EXPORT(__movmemSI60); | |
88 | 102 | DECLARE_EXPORT(__movmem_i4_even); |
89 | 103 | DECLARE_EXPORT(__movmem_i4_odd); |
90 | 104 | DECLARE_EXPORT(__movmemSI12_i4); |
arch/sh/mm/Kconfig
fs/Kconfig
... | ... | @@ -135,8 +135,8 @@ |
135 | 135 | |
136 | 136 | config HUGETLBFS |
137 | 137 | bool "HugeTLB file system support" |
138 | - depends on X86 || IA64 || PPC_BOOK3S_64 || SPARC64 || (SUPERH && MMU) || \ | |
139 | - (S390 && 64BIT) || SYS_SUPPORTS_HUGETLBFS || BROKEN | |
138 | + depends on X86 || IA64 || PPC_BOOK3S_64 || SPARC64 || (S390 && 64BIT) || \ | |
139 | + SYS_SUPPORTS_HUGETLBFS || BROKEN | |
140 | 140 | help |
141 | 141 | hugetlbfs is a filesystem backing for HugeTLB pages, based on |
142 | 142 | ramfs. For architectures that support it, say Y here and read |