Commit 0d43f5123d1456669b3bbc69854faf6fd5b14caa

Authored by Linus Torvalds

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

... ... @@ -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
... ... @@ -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);
... ... @@ -227,7 +227,7 @@
227 227  
228 228 choice
229 229 prompt "HugeTLB page size"
230   - depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU
  230 + depends on HUGETLB_PAGE
231 231 default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB
232 232 default HUGETLB_PAGE_SIZE_64K
233 233  
... ... @@ -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