diff options
Diffstat (limited to 'arch/sh')
28 files changed, 54 insertions, 45 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 36f5141e804..3b3e27a3ff2 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -13,14 +13,17 @@ config SUPERH select HAVE_DMA_ATTRS select HAVE_IRQ_WORK select HAVE_PERF_EVENTS + select HAVE_DEBUG_BUGVERBOSE select ARCH_HAVE_CUSTOM_GPIO_H select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A) select PERF_USE_VMALLOC + select HAVE_DEBUG_KMEMLEAK select HAVE_KERNEL_GZIP select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_LZMA select HAVE_KERNEL_XZ select HAVE_KERNEL_LZO + select HAVE_UID16 select ARCH_WANT_IPC_PARSE_VERSION select HAVE_SYSCALL_TRACEPOINTS select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c index 40db2d0aef3..a7e078f2e2e 100644 --- a/arch/sh/drivers/pci/pci.c +++ b/arch/sh/drivers/pci/pci.c @@ -192,11 +192,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) return pci_enable_resources(dev, mask); } -void __init pcibios_update_irq(struct pci_dev *dev, int irq) -{ - pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); -} - static void __init pcibios_bus_report_status_early(struct pci_channel *hose, int top_bus, int current_bus, diff --git a/arch/sh/drivers/push-switch.c b/arch/sh/drivers/push-switch.c index 637b79b0965..5bfb341cc5c 100644 --- a/arch/sh/drivers/push-switch.c +++ b/arch/sh/drivers/push-switch.c @@ -107,7 +107,7 @@ static int switch_drv_remove(struct platform_device *pdev) device_remove_file(&pdev->dev, &dev_attr_switch); platform_set_drvdata(pdev, NULL); - flush_work_sync(&psw->work); + flush_work(&psw->work); del_timer_sync(&psw->debounce); free_irq(irq, pdev); diff --git a/arch/sh/include/asm/bl_bit.h b/arch/sh/include/asm/bl_bit.h index 45e6b9fc37a..06e4163c674 100644 --- a/arch/sh/include/asm/bl_bit.h +++ b/arch/sh/include/asm/bl_bit.h @@ -2,9 +2,9 @@ #define __ASM_SH_BL_BIT_H #ifdef CONFIG_SUPERH32 -# include "bl_bit_32.h" +# include <asm/bl_bit_32.h> #else -# include "bl_bit_64.h" +# include <asm/bl_bit_64.h> #endif #endif /* __ASM_SH_BL_BIT_H */ diff --git a/arch/sh/include/asm/cache_insns.h b/arch/sh/include/asm/cache_insns.h index d25fbe53090..355cb06b7a3 100644 --- a/arch/sh/include/asm/cache_insns.h +++ b/arch/sh/include/asm/cache_insns.h @@ -3,9 +3,9 @@ #ifdef CONFIG_SUPERH32 -# include "cache_insns_32.h" +# include <asm/cache_insns_32.h> #else -# include "cache_insns_64.h" +# include <asm/cache_insns_64.h> #endif #endif /* __ASM_SH_CACHE_INSNS_H */ diff --git a/arch/sh/include/asm/checksum.h b/arch/sh/include/asm/checksum.h index fc26d1f4b59..34ae2620452 100644 --- a/arch/sh/include/asm/checksum.h +++ b/arch/sh/include/asm/checksum.h @@ -1,5 +1,5 @@ #ifdef CONFIG_SUPERH32 -# include "checksum_32.h" +# include <asm/checksum_32.h> #else # include <asm-generic/checksum.h> #endif diff --git a/arch/sh/include/asm/elf.h b/arch/sh/include/asm/elf.h index f38112be67d..37924afa8d8 100644 --- a/arch/sh/include/asm/elf.h +++ b/arch/sh/include/asm/elf.h @@ -183,7 +183,8 @@ do { \ } while (0) #endif -#define SET_PERSONALITY(ex) set_personality(PER_LINUX_32BIT) +#define SET_PERSONALITY(ex) \ + set_personality(PER_LINUX_32BIT | (current->personality & (~PER_MASK))) #ifdef CONFIG_VSYSCALL /* vDSO has arch_setup_additional_pages */ diff --git a/arch/sh/include/asm/hugetlb.h b/arch/sh/include/asm/hugetlb.h index 967068fb79a..b3808c7d67b 100644 --- a/arch/sh/include/asm/hugetlb.h +++ b/arch/sh/include/asm/hugetlb.h @@ -1,6 +1,7 @@ #ifndef _ASM_SH_HUGETLB_H #define _ASM_SH_HUGETLB_H +#include <asm/cacheflush.h> #include <asm/page.h> @@ -89,4 +90,9 @@ static inline void arch_release_hugepage(struct page *page) { } +static inline void arch_clear_hugepage_flags(struct page *page) +{ + clear_bit(PG_dcache_clean, &page->flags); +} + #endif /* _ASM_SH_HUGETLB_H */ diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h index 0cf60a62881..73a23f4617a 100644 --- a/arch/sh/include/asm/io.h +++ b/arch/sh/include/asm/io.h @@ -134,7 +134,7 @@ __BUILD_MEMORY_STRING(__raw_, q, u64) * load/store instructions. sh_io_port_base is the virtual address to * which all ports are being mapped. */ -extern const unsigned long sh_io_port_base; +extern unsigned long sh_io_port_base; static inline void __set_io_port_base(unsigned long pbase) { diff --git a/arch/sh/include/asm/mmu_context.h b/arch/sh/include/asm/mmu_context.h index 384c7471a37..21c5088788d 100644 --- a/arch/sh/include/asm/mmu_context.h +++ b/arch/sh/include/asm/mmu_context.h @@ -46,9 +46,9 @@ #define MMU_VPN_MASK 0xfffff000 #if defined(CONFIG_SUPERH32) -#include "mmu_context_32.h" +#include <asm/mmu_context_32.h> #else -#include "mmu_context_64.h" +#include <asm/mmu_context_64.h> #endif /* diff --git a/arch/sh/include/asm/posix_types.h b/arch/sh/include/asm/posix_types.h index 4eeb723aee7..f08449bcbde 100644 --- a/arch/sh/include/asm/posix_types.h +++ b/arch/sh/include/asm/posix_types.h @@ -1,13 +1,13 @@ #ifdef __KERNEL__ # ifdef CONFIG_SUPERH32 -# include "posix_types_32.h" +# include <asm/posix_types_32.h> # else -# include "posix_types_64.h" +# include <asm/posix_types_64.h> # endif #else # ifdef __SH5__ -# include "posix_types_64.h" +# include <asm/posix_types_64.h> # else -# include "posix_types_32.h" +# include <asm/posix_types_32.h> # endif #endif /* __KERNEL__ */ diff --git a/arch/sh/include/asm/processor.h b/arch/sh/include/asm/processor.h index 3d14aeaef57..5448f9bbf4a 100644 --- a/arch/sh/include/asm/processor.h +++ b/arch/sh/include/asm/processor.h @@ -175,9 +175,9 @@ extern unsigned int instruction_size(unsigned int insn); #endif /* __ASSEMBLY__ */ #ifdef CONFIG_SUPERH32 -# include "processor_32.h" +# include <asm/processor_32.h> #else -# include "processor_64.h" +# include <asm/processor_64.h> #endif #endif /* __ASM_SH_PROCESSOR_H */ diff --git a/arch/sh/include/asm/ptrace.h b/arch/sh/include/asm/ptrace.h index c7b7e1ed194..a4a38dff997 100644 --- a/arch/sh/include/asm/ptrace.h +++ b/arch/sh/include/asm/ptrace.h @@ -25,9 +25,9 @@ #define PT_TEXT_LEN 252 #if defined(__SH5__) || defined(CONFIG_CPU_SH5) -#include "ptrace_64.h" +#include <asm/ptrace_64.h> #else -#include "ptrace_32.h" +#include <asm/ptrace_32.h> #endif #ifdef __KERNEL__ diff --git a/arch/sh/include/asm/string.h b/arch/sh/include/asm/string.h index 8c1ea21dc0a..114011fa08a 100644 --- a/arch/sh/include/asm/string.h +++ b/arch/sh/include/asm/string.h @@ -1,5 +1,5 @@ #ifdef CONFIG_SUPERH32 -# include "string_32.h" +# include <asm/string_32.h> #else -# include "string_64.h" +# include <asm/string_64.h> #endif diff --git a/arch/sh/include/asm/switch_to.h b/arch/sh/include/asm/switch_to.h index 62b1941813e..bcd722fc834 100644 --- a/arch/sh/include/asm/switch_to.h +++ b/arch/sh/include/asm/switch_to.h @@ -11,9 +11,9 @@ #define __ASM_SH_SWITCH_TO_H #ifdef CONFIG_SUPERH32 -# include "switch_to_32.h" +# include <asm/switch_to_32.h> #else -# include "switch_to_64.h" +# include <asm/switch_to_64.h> #endif #endif /* __ASM_SH_SWITCH_TO_H */ diff --git a/arch/sh/include/asm/syscall.h b/arch/sh/include/asm/syscall.h index aa7777bdc37..847128da6ea 100644 --- a/arch/sh/include/asm/syscall.h +++ b/arch/sh/include/asm/syscall.h @@ -4,9 +4,9 @@ extern const unsigned long sys_call_table[]; #ifdef CONFIG_SUPERH32 -# include "syscall_32.h" +# include <asm/syscall_32.h> #else -# include "syscall_64.h" +# include <asm/syscall_64.h> #endif #endif /* __ASM_SH_SYSCALL_H */ diff --git a/arch/sh/include/asm/syscalls.h b/arch/sh/include/asm/syscalls.h index 507725af2e5..3dbfef06f6b 100644 --- a/arch/sh/include/asm/syscalls.h +++ b/arch/sh/include/asm/syscalls.h @@ -11,9 +11,9 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long fd, unsigned long pgoff); #ifdef CONFIG_SUPERH32 -# include "syscalls_32.h" +# include <asm/syscalls_32.h> #else -# include "syscalls_64.h" +# include <asm/syscalls_64.h> #endif #endif /* __KERNEL__ */ diff --git a/arch/sh/include/asm/tlb.h b/arch/sh/include/asm/tlb.h index ec88bfcdf7c..e61d43d9f68 100644 --- a/arch/sh/include/asm/tlb.h +++ b/arch/sh/include/asm/tlb.h @@ -2,7 +2,7 @@ #define __ASM_SH_TLB_H #ifdef CONFIG_SUPERH64 -# include "tlb_64.h" +# include <asm/tlb_64.h> #endif #ifndef __ASSEMBLY__ diff --git a/arch/sh/include/asm/traps.h b/arch/sh/include/asm/traps.h index afd9df8d064..9cc149a0dbd 100644 --- a/arch/sh/include/asm/traps.h +++ b/arch/sh/include/asm/traps.h @@ -4,9 +4,9 @@ #include <linux/compiler.h> #ifdef CONFIG_SUPERH32 -# include "traps_32.h" +# include <asm/traps_32.h> #else -# include "traps_64.h" +# include <asm/traps_64.h> #endif BUILD_TRAP_HANDLER(address_error); diff --git a/arch/sh/include/asm/uaccess.h b/arch/sh/include/asm/uaccess.h index 8698a80ed00..9486376605f 100644 --- a/arch/sh/include/asm/uaccess.h +++ b/arch/sh/include/asm/uaccess.h @@ -97,9 +97,9 @@ struct __large_struct { unsigned long buf[100]; }; }) #ifdef CONFIG_SUPERH32 -# include "uaccess_32.h" +# include <asm/uaccess_32.h> #else -# include "uaccess_64.h" +# include <asm/uaccess_64.h> #endif extern long strncpy_from_user(char *dest, const char __user *src, long count); diff --git a/arch/sh/include/asm/unistd.h b/arch/sh/include/asm/unistd.h index 7bc67076baa..307201a854f 100644 --- a/arch/sh/include/asm/unistd.h +++ b/arch/sh/include/asm/unistd.h @@ -1,8 +1,8 @@ #ifdef __KERNEL__ # ifdef CONFIG_SUPERH32 -# include "unistd_32.h" +# include <asm/unistd_32.h> # else -# include "unistd_64.h" +# include <asm/unistd_64.h> # endif # define __ARCH_WANT_SYS_RT_SIGSUSPEND @@ -40,8 +40,8 @@ #else # ifdef __SH5__ -# include "unistd_64.h" +# include <asm/unistd_64.h> # else -# include "unistd_32.h" +# include <asm/unistd_32.h> # endif #endif diff --git a/arch/sh/include/mach-ecovec24/mach/romimage.h b/arch/sh/include/mach-ecovec24/mach/romimage.h index d63ef51ec18..60f3e8af05f 100644 --- a/arch/sh/include/mach-ecovec24/mach/romimage.h +++ b/arch/sh/include/mach-ecovec24/mach/romimage.h @@ -6,7 +6,7 @@ */ #include <asm/romimage-macros.h> -#include "partner-jet-setup.txt" +#include <mach/partner-jet-setup.txt> /* execute icbi after enabling cache */ mov.l 1f, r0 diff --git a/arch/sh/include/mach-kfr2r09/mach/romimage.h b/arch/sh/include/mach-kfr2r09/mach/romimage.h index 7a883167c84..1afae21ced5 100644 --- a/arch/sh/include/mach-kfr2r09/mach/romimage.h +++ b/arch/sh/include/mach-kfr2r09/mach/romimage.h @@ -6,7 +6,7 @@ */ #include <asm/romimage-macros.h> -#include "partner-jet-setup.txt" +#include <mach/partner-jet-setup.txt> /* execute icbi after enabling cache */ mov.l 1f, r0 diff --git a/arch/sh/include/uapi/asm/Kbuild b/arch/sh/include/uapi/asm/Kbuild new file mode 100644 index 00000000000..baebb3da1d4 --- /dev/null +++ b/arch/sh/include/uapi/asm/Kbuild @@ -0,0 +1,3 @@ +# UAPI Header export list +include include/uapi/asm-generic/Kbuild.asm + diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S index b7cf6a547f1..7e605b95592 100644 --- a/arch/sh/kernel/cpu/sh5/entry.S +++ b/arch/sh/kernel/cpu/sh5/entry.S @@ -933,7 +933,7 @@ ret_with_reschedule: pta restore_all, tr1 - movi _TIF_SIGPENDING, r8 + movi (_TIF_SIGPENDING|_TIF_NOTIFY_RESUME), r8 and r8, r7, r8 pta work_notifysig, tr0 bne r8, ZERO, tr0 diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index f67601cb3f1..b96489d8b27 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S @@ -139,7 +139,7 @@ work_pending: ! r8: current_thread_info ! t: result of "tst #_TIF_NEED_RESCHED, r0" bf/s work_resched - tst #_TIF_SIGPENDING, r0 + tst #(_TIF_SIGPENDING | _TIF_NOTIFY_RESUME), r0 work_notifysig: bt/s __restore_all mov r15, r4 diff --git a/arch/sh/kernel/ioport.c b/arch/sh/kernel/ioport.c index e3ad6103e7c..cca14ba84a3 100644 --- a/arch/sh/kernel/ioport.c +++ b/arch/sh/kernel/ioport.c @@ -11,7 +11,7 @@ #include <linux/module.h> #include <linux/io.h> -const unsigned long sh_io_port_base __read_mostly = -1; +unsigned long sh_io_port_base __read_mostly = -1; EXPORT_SYMBOL(sh_io_port_base); void __iomem *__ioport_map(unsigned long addr, unsigned int size) diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index 3bdc1ad9a34..cbbdcad8fcb 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -504,6 +504,7 @@ good_area: } if (fault & VM_FAULT_RETRY) { flags &= ~FAULT_FLAG_ALLOW_RETRY; + flags |= FAULT_FLAG_TRIED; /* * No need to up_read(&mm->mmap_sem) as we would |