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
This commit is contained in:
commit
0d43f5123d
|
@ -121,6 +121,9 @@ config SYS_SUPPORTS_APM_EMULATION
|
|||
bool
|
||||
select ARCH_SUSPEND_POSSIBLE
|
||||
|
||||
config SYS_SUPPORTS_HUGETLBFS
|
||||
bool
|
||||
|
||||
config SYS_SUPPORTS_SMP
|
||||
bool
|
||||
|
||||
|
@ -195,6 +198,7 @@ config CPU_SH4
|
|||
select CPU_HAS_SR_RB
|
||||
select CPU_HAS_FPU if !CPU_SH4AL_DSP
|
||||
select SYS_SUPPORTS_TMU
|
||||
select SYS_SUPPORTS_HUGETLBFS if MMU
|
||||
|
||||
config CPU_SH4A
|
||||
bool
|
||||
|
@ -209,6 +213,7 @@ config CPU_SH5
|
|||
bool
|
||||
select CPU_HAS_FPU
|
||||
select SYS_SUPPORTS_TMU
|
||||
select SYS_SUPPORTS_HUGETLBFS if MMU
|
||||
|
||||
config CPU_SHX2
|
||||
bool
|
||||
|
|
|
@ -199,7 +199,7 @@ endif
|
|||
libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
|
||||
libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
|
||||
|
||||
BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec \
|
||||
BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \
|
||||
zImage vmlinux.srec romImage
|
||||
PHONY += maketools $(BOOT_TARGETS) FORCE
|
||||
|
||||
|
@ -225,6 +225,7 @@ define archhelp
|
|||
@echo ' vmlinux.srec - Create an ELF S-record'
|
||||
@echo '* uImage - Alias to bootable U-Boot image'
|
||||
@echo ' uImage.srec - Create an S-record for U-Boot'
|
||||
@echo ' uImage.bin - Kernel-only image for U-Boot (bin)'
|
||||
@echo '* uImage.gz - Kernel-only image for U-Boot (gzip)'
|
||||
@echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
|
||||
@echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)'
|
||||
|
|
|
@ -11,10 +11,6 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/map.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/leds.h>
|
||||
|
|
|
@ -15,14 +15,12 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#ifdef CONFIG_MTD
|
||||
#include <linux/mtd/map.h>
|
||||
#endif
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
static const char *probes[] = { "cmdlinepart", NULL };
|
||||
|
||||
static struct mtd_partition *parsed_partitions;
|
||||
|
||||
static struct mtd_partition rsk_partitions[] = {
|
||||
{
|
||||
.name = "Bootloader",
|
||||
|
@ -41,6 +39,8 @@ static struct mtd_partition rsk_partitions[] = {
|
|||
};
|
||||
|
||||
static struct physmap_flash_data flash_data = {
|
||||
.parts = rsk_partitions,
|
||||
.nr_parts = ARRAY_SIZE(rsk_partitions),
|
||||
.width = 2,
|
||||
};
|
||||
|
||||
|
@ -60,7 +60,8 @@ static struct platform_device flash_device = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct mtd_info *flash_mtd;
|
||||
#ifdef CONFIG_MTD
|
||||
static const char *probes[] = { "cmdlinepart", NULL };
|
||||
|
||||
static struct map_info rsk_flash_map = {
|
||||
.name = "RSK+ Flash",
|
||||
|
@ -68,6 +69,10 @@ static struct map_info rsk_flash_map = {
|
|||
.bankwidth = 2,
|
||||
};
|
||||
|
||||
static struct mtd_info *flash_mtd;
|
||||
|
||||
static struct mtd_partition *parsed_partitions;
|
||||
|
||||
static void __init set_mtd_partitions(void)
|
||||
{
|
||||
int nr_parts = 0;
|
||||
|
@ -77,14 +82,14 @@ static void __init set_mtd_partitions(void)
|
|||
nr_parts = parse_mtd_partitions(flash_mtd, probes,
|
||||
&parsed_partitions, 0);
|
||||
/* If there is no partition table, used the hard coded table */
|
||||
if (nr_parts <= 0) {
|
||||
flash_data.parts = rsk_partitions;
|
||||
flash_data.nr_parts = ARRAY_SIZE(rsk_partitions);
|
||||
} else {
|
||||
if (nr_parts > 0) {
|
||||
flash_data.nr_parts = nr_parts;
|
||||
flash_data.parts = parsed_partitions;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static inline void set_mtd_partitions(void) {}
|
||||
#endif
|
||||
|
||||
static struct platform_device *rsk_devices[] __initdata = {
|
||||
&flash_device,
|
||||
|
|
|
@ -20,11 +20,12 @@ CONFIG_BOOT_LINK_OFFSET ?= 0x00800000
|
|||
CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000
|
||||
CONFIG_ENTRY_OFFSET ?= 0x00001000
|
||||
|
||||
suffix-y := bin
|
||||
suffix-$(CONFIG_KERNEL_GZIP) := gz
|
||||
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
|
||||
suffix-$(CONFIG_KERNEL_LZMA) := lzma
|
||||
|
||||
targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma
|
||||
targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma uImage.bin
|
||||
extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma
|
||||
subdir- := compressed romimage
|
||||
|
||||
|
@ -88,6 +89,9 @@ $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz
|
|||
$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma
|
||||
$(call if_changed,uimage,lzma)
|
||||
|
||||
$(obj)/uImage.bin: $(obj)/vmlinux.bin
|
||||
$(call if_changed,uimage,none)
|
||||
|
||||
OBJCOPYFLAGS_vmlinux.srec := -I binary -O srec
|
||||
$(obj)/vmlinux.srec: $(obj)/compressed/vmlinux
|
||||
$(call if_changed,objcopy)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/list.h>
|
||||
#include <linux/mempool.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/ftrace.h>
|
||||
#include <asm/dwarf.h>
|
||||
#include <asm/unwinder.h>
|
||||
#include <asm/sections.h>
|
||||
|
@ -557,6 +558,27 @@ struct dwarf_frame * dwarf_unwind_stack(unsigned long pc,
|
|||
if (!pc && !prev)
|
||||
pc = (unsigned long)current_text_addr();
|
||||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
/*
|
||||
* If our stack has been patched by the function graph tracer
|
||||
* then we might see the address of return_to_handler() where we
|
||||
* expected to find the real return address.
|
||||
*/
|
||||
if (pc == (unsigned long)&return_to_handler) {
|
||||
int index = current->curr_ret_stack;
|
||||
|
||||
/*
|
||||
* We currently have no way of tracking how many
|
||||
* return_to_handler()'s we've seen. If there is more
|
||||
* than one patched return address on our stack,
|
||||
* complain loudly.
|
||||
*/
|
||||
WARN_ON(index > 0);
|
||||
|
||||
pc = current->ret_stack[index].ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
frame = mempool_alloc(dwarf_frame_pool, GFP_ATOMIC);
|
||||
if (!frame) {
|
||||
printk(KERN_ERR "Unable to allocate a dwarf frame\n");
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/ftrace.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
@ -106,7 +107,7 @@ static union irq_ctx *hardirq_ctx[NR_CPUS] __read_mostly;
|
|||
static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
|
||||
#endif
|
||||
|
||||
asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
#ifdef CONFIG_IRQSTACKS
|
||||
|
|
|
@ -85,6 +85,20 @@ DECLARE_EXPORT(__movstr_i4_even);
|
|||
DECLARE_EXPORT(__movstr_i4_odd);
|
||||
DECLARE_EXPORT(__movstrSI12_i4);
|
||||
DECLARE_EXPORT(__movmem);
|
||||
DECLARE_EXPORT(__movmemSI8);
|
||||
DECLARE_EXPORT(__movmemSI12);
|
||||
DECLARE_EXPORT(__movmemSI16);
|
||||
DECLARE_EXPORT(__movmemSI20);
|
||||
DECLARE_EXPORT(__movmemSI24);
|
||||
DECLARE_EXPORT(__movmemSI28);
|
||||
DECLARE_EXPORT(__movmemSI32);
|
||||
DECLARE_EXPORT(__movmemSI36);
|
||||
DECLARE_EXPORT(__movmemSI40);
|
||||
DECLARE_EXPORT(__movmemSI44);
|
||||
DECLARE_EXPORT(__movmemSI48);
|
||||
DECLARE_EXPORT(__movmemSI52);
|
||||
DECLARE_EXPORT(__movmemSI56);
|
||||
DECLARE_EXPORT(__movmemSI60);
|
||||
DECLARE_EXPORT(__movmem_i4_even);
|
||||
DECLARE_EXPORT(__movmem_i4_odd);
|
||||
DECLARE_EXPORT(__movmemSI12_i4);
|
||||
|
|
|
@ -227,7 +227,7 @@ endchoice
|
|||
|
||||
choice
|
||||
prompt "HugeTLB page size"
|
||||
depends on HUGETLB_PAGE && (CPU_SH4 || CPU_SH5) && MMU
|
||||
depends on HUGETLB_PAGE
|
||||
default HUGETLB_PAGE_SIZE_1MB if PAGE_SIZE_64KB
|
||||
default HUGETLB_PAGE_SIZE_64K
|
||||
|
||||
|
|
|
@ -135,8 +135,8 @@ config TMPFS_POSIX_ACL
|
|||
|
||||
config HUGETLBFS
|
||||
bool "HugeTLB file system support"
|
||||
depends on X86 || IA64 || PPC_BOOK3S_64 || SPARC64 || (SUPERH && MMU) || \
|
||||
(S390 && 64BIT) || SYS_SUPPORTS_HUGETLBFS || BROKEN
|
||||
depends on X86 || IA64 || PPC_BOOK3S_64 || SPARC64 || (S390 && 64BIT) || \
|
||||
SYS_SUPPORTS_HUGETLBFS || BROKEN
|
||||
help
|
||||
hugetlbfs is a filesystem backing for HugeTLB pages, based on
|
||||
ramfs. For architectures that support it, say Y here and read
|
||||
|
|
Loading…
Reference in New Issue