Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+67 -19
+5
arch/sh/Kconfig
··· 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 ··· 198 195 select CPU_HAS_SR_RB 199 196 select CPU_HAS_FPU if !CPU_SH4AL_DSP 200 197 select SYS_SUPPORTS_TMU 198 + select SYS_SUPPORTS_HUGETLBFS if MMU 201 199 202 200 config CPU_SH4A 203 201 bool ··· 213 209 bool 214 210 select CPU_HAS_FPU 215 211 select SYS_SUPPORTS_TMU 212 + select SYS_SUPPORTS_HUGETLBFS if MMU 216 213 217 214 config CPU_SHX2 218 215 bool
+2 -1
arch/sh/Makefile
··· 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 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)'
-4
arch/sh/boards/mach-rsk/devices-rsk7203.c
··· 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>
+14 -9
arch/sh/boards/mach-rsk/setup.c
··· 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 - 22 - static const char *probes[] = { "cmdlinepart", NULL }; 23 - 24 - static struct mtd_partition *parsed_partitions; 25 23 26 24 static struct mtd_partition rsk_partitions[] = { 27 25 { ··· 39 41 }; 40 42 41 43 static struct physmap_flash_data flash_data = { 44 + .parts = rsk_partitions, 45 + .nr_parts = ARRAY_SIZE(rsk_partitions), 42 46 .width = 2, 43 47 }; 44 48 ··· 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", 67 68 .size = 0x400000, 68 69 .bankwidth = 2, 69 70 }; 71 + 72 + static struct mtd_info *flash_mtd; 73 + 74 + static struct mtd_partition *parsed_partitions; 70 75 71 76 static void __init set_mtd_partitions(void) 72 77 { ··· 82 77 nr_parts = parse_mtd_partitions(flash_mtd, probes, 83 78 &parsed_partitions, 0); 84 79 /* If there is no partition table, used the hard coded table */ 85 - if (nr_parts <= 0) { 86 - flash_data.parts = rsk_partitions; 87 - flash_data.nr_parts = ARRAY_SIZE(rsk_partitions); 88 - } else { 80 + if (nr_parts > 0) { 89 81 flash_data.nr_parts = nr_parts; 90 82 flash_data.parts = parsed_partitions; 91 83 } 92 84 } 85 + #else 86 + static inline void set_mtd_partitions(void) {} 87 + #endif 93 88 94 89 static struct platform_device *rsk_devices[] __initdata = { 95 90 &flash_device,
+5 -1
arch/sh/boot/Makefile
··· 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 ··· 88 87 89 88 $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma 90 89 $(call if_changed,uimage,lzma) 90 + 91 + $(obj)/uImage.bin: $(obj)/vmlinux.bin 92 + $(call if_changed,uimage,none) 91 93 92 94 OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec 93 95 $(obj)/vmlinux.srec: $(obj)/compressed/vmlinux
+22
arch/sh/kernel/dwarf.c
··· 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> ··· 557 556 */ 558 557 if (!pc && !prev) 559 558 pc = (unsigned long)current_text_addr(); 559 + 560 + #ifdef CONFIG_FUNCTION_GRAPH_TRACER 561 + /* 562 + * If our stack has been patched by the function graph tracer 563 + * then we might see the address of return_to_handler() where we 564 + * expected to find the real return address. 565 + */ 566 + if (pc == (unsigned long)&return_to_handler) { 567 + int index = current->curr_ret_stack; 568 + 569 + /* 570 + * We currently have no way of tracking how many 571 + * return_to_handler()'s we've seen. If there is more 572 + * than one patched return address on our stack, 573 + * complain loudly. 574 + */ 575 + WARN_ON(index > 0); 576 + 577 + pc = current->ret_stack[index].ret; 578 + } 579 + #endif 560 580 561 581 frame = mempool_alloc(dwarf_frame_pool, GFP_ATOMIC); 562 582 if (!frame) {
+2 -1
arch/sh/kernel/irq.c
··· 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> ··· 107 106 static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; 108 107 #endif 109 108 110 - asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) 109 + asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs) 111 110 { 112 111 struct pt_regs *old_regs = set_irq_regs(regs); 113 112 #ifdef CONFIG_IRQSTACKS
+14
arch/sh/kernel/sh_ksyms_32.c
··· 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);
+1 -1
arch/sh/mm/Kconfig
··· 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
+2 -2
fs/Kconfig
··· 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