Commit b693ffe6 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'sh/for-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6

* 'sh/for-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  i2c: fix i2c-sh_mobile timing issues
  sh64: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y.
  sh: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y.
  sh: fix semtimedop syscall
  sh: update AP325RXA defconfig
  sh: update Migo-R defconfig
  sh: fix platform_resource_setup_memory() section mismatch
  sh: fix kexec entry point for crash kernels
  sh: crash kernel resource fix
  sh: fix ptrace_64.c:user_disable_single_step()
  sh64: re-add the __strnlen_user() prototype
parents 14408c4f 4eb00c9f
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.26 # Linux kernel version: 2.6.27-rc4
# Wed Jul 30 01:18:59 2008 # Tue Aug 26 14:21:17 2008
# #
CONFIG_SUPERH=y CONFIG_SUPERH=y
CONFIG_SUPERH32=y CONFIG_SUPERH32=y
...@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y ...@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME=y CONFIG_GENERIC_TIME=y
...@@ -20,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y ...@@ -20,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_NO_VIRT_TO_BUS=y CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# #
...@@ -58,7 +58,6 @@ CONFIG_SYSCTL=y ...@@ -58,7 +58,6 @@ CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_UID16=y CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y CONFIG_SYSCTL_SYSCALL=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y CONFIG_HOTPLUG=y
CONFIG_PRINTK=y CONFIG_PRINTK=y
...@@ -89,6 +88,7 @@ CONFIG_HAVE_OPROFILE=y ...@@ -89,6 +88,7 @@ CONFIG_HAVE_OPROFILE=y
# CONFIG_USE_GENERIC_SMP_HELPERS is not set # CONFIG_USE_GENERIC_SMP_HELPERS is not set
CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK=y
CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_PAGE_MONITOR=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
...@@ -261,9 +261,10 @@ CONFIG_HZ_250=y ...@@ -261,9 +261,10 @@ CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set # CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set # CONFIG_HZ_1000 is not set
CONFIG_HZ=250 CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set # CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set # CONFIG_CRASH_DUMP is not set
CONFIG_SECCOMP=y
# CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y CONFIG_PREEMPT=y
...@@ -289,10 +290,6 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp" ...@@ -289,10 +290,6 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp"
# #
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
#
# Networking
#
CONFIG_NET=y CONFIG_NET=y
# #
...@@ -647,6 +644,7 @@ CONFIG_SSB_POSSIBLE=y ...@@ -647,6 +644,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_CORE is not set # CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set # CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
# #
# Multimedia devices # Multimedia devices
...@@ -690,7 +688,10 @@ CONFIG_DUMMY_CONSOLE=y ...@@ -690,7 +688,10 @@ CONFIG_DUMMY_CONSOLE=y
# CONFIG_ACCESSIBILITY is not set # CONFIG_ACCESSIBILITY is not set
# CONFIG_RTC_CLASS is not set # CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set # CONFIG_DMADEVICES is not set
# CONFIG_UIO is not set CONFIG_UIO=y
# CONFIG_UIO_PDRV is not set
CONFIG_UIO_PDRV_GENIRQ=y
# CONFIG_UIO_SMX is not set
# #
# File systems # File systems
...@@ -854,6 +855,7 @@ CONFIG_FRAME_WARN=1024 ...@@ -854,6 +855,7 @@ CONFIG_FRAME_WARN=1024
# CONFIG_DEBUG_KERNEL is not set # CONFIG_DEBUG_KERNEL is not set
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_MEMORY_INIT is not set # CONFIG_DEBUG_MEMORY_INIT is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_SAMPLES is not set # CONFIG_SAMPLES is not set
# CONFIG_SH_STANDARD_BIOS is not set # CONFIG_SH_STANDARD_BIOS is not set
# CONFIG_EARLY_SCIF_CONSOLE is not set # CONFIG_EARLY_SCIF_CONSOLE is not set
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.26 # Linux kernel version: 2.6.27-rc4
# Wed Jul 30 01:44:41 2008 # Tue Aug 26 14:18:17 2008
# #
CONFIG_SUPERH=y CONFIG_SUPERH=y
CONFIG_SUPERH32=y CONFIG_SUPERH32=y
...@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y ...@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME=y CONFIG_GENERIC_TIME=y
...@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y ...@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_NO_VIRT_TO_BUS=y CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# #
...@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y ...@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y
# CONFIG_USE_GENERIC_SMP_HELPERS is not set # CONFIG_USE_GENERIC_SMP_HELPERS is not set
CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK=y
CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_PAGE_MONITOR=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
...@@ -270,6 +271,7 @@ CONFIG_HZ=250 ...@@ -270,6 +271,7 @@ CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set # CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set # CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set # CONFIG_CRASH_DUMP is not set
CONFIG_SECCOMP=y
CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
...@@ -294,10 +296,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on" ...@@ -294,10 +296,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on"
# #
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
#
# Networking
#
CONFIG_NET=y CONFIG_NET=y
# #
...@@ -649,6 +647,7 @@ CONFIG_HW_RANDOM=y ...@@ -649,6 +647,7 @@ CONFIG_HW_RANDOM=y
CONFIG_I2C=y CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_CHARDEV is not set # CONFIG_I2C_CHARDEV is not set
CONFIG_I2C_HELPER_AUTO=y
# #
# I2C Hardware Bus support # I2C Hardware Bus support
...@@ -709,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y ...@@ -709,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_CORE is not set # CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set # CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
# #
# Multimedia devices # Multimedia devices
...@@ -755,6 +755,8 @@ CONFIG_USB_ARCH_HAS_HCD=y ...@@ -755,6 +755,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB is not set # CONFIG_USB is not set
# CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_GADGET_MUSB_HDRC is not set
# #
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
...@@ -842,7 +844,10 @@ CONFIG_RTC_DRV_RS5C372=y ...@@ -842,7 +844,10 @@ CONFIG_RTC_DRV_RS5C372=y
# #
CONFIG_RTC_DRV_SH=y CONFIG_RTC_DRV_SH=y
# CONFIG_DMADEVICES is not set # CONFIG_DMADEVICES is not set
# CONFIG_UIO is not set CONFIG_UIO=y
# CONFIG_UIO_PDRV is not set
CONFIG_UIO_PDRV_GENIRQ=y
# CONFIG_UIO_SMX is not set
# #
# File systems # File systems
......
...@@ -76,4 +76,6 @@ extern long __put_user_asm_l(void *, long); ...@@ -76,4 +76,6 @@ extern long __put_user_asm_l(void *, long);
extern long __put_user_asm_q(void *, long); extern long __put_user_asm_q(void *, long);
extern void __put_user_unknown(void); extern void __put_user_unknown(void);
extern long __strnlen_user(const char *__s, long __n);
#endif /* __ASM_SH_UACCESS_64_H */ #endif /* __ASM_SH_UACCESS_64_H */
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* arch/sh/kernel/cpu/sh5/entry.S * arch/sh/kernel/cpu/sh5/entry.S
* *
* Copyright (C) 2000, 2001 Paolo Alberelli * Copyright (C) 2000, 2001 Paolo Alberelli
* Copyright (C) 2004 - 2007 Paul Mundt * Copyright (C) 2004 - 2008 Paul Mundt
* Copyright (C) 2003, 2004 Richard Curnow * Copyright (C) 2003, 2004 Richard Curnow
* *
* This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public
...@@ -923,6 +923,8 @@ ret_from_exception: ...@@ -923,6 +923,8 @@ ret_from_exception:
blink tr0, ZERO blink tr0, ZERO
resume_kernel: resume_kernel:
CLI()
pta restore_all, tr0 pta restore_all, tr0
getcon KCR0, r6 getcon KCR0, r6
...@@ -939,19 +941,11 @@ need_resched: ...@@ -939,19 +941,11 @@ need_resched:
andi r7, 0xf0, r7 andi r7, 0xf0, r7
bne r7, ZERO, tr0 bne r7, ZERO, tr0
movi ((PREEMPT_ACTIVE >> 16) & 65535), r8 movi preempt_schedule_irq, r7
shori (PREEMPT_ACTIVE & 65535), r8
st.l r6, TI_PRE_COUNT, r8
STI()
movi schedule, r7
ori r7, 1, r7 ori r7, 1, r7
ptabs r7, tr1 ptabs r7, tr1
blink tr1, LINK blink tr1, LINK
st.l r6, TI_PRE_COUNT, ZERO
CLI()
pta need_resched, tr1 pta need_resched, tr1
blink tr1, ZERO blink tr1, ZERO
#endif #endif
......
...@@ -92,6 +92,7 @@ ENTRY(ret_from_irq) ...@@ -92,6 +92,7 @@ ENTRY(ret_from_irq)
bra resume_userspace bra resume_userspace
nop nop
ENTRY(resume_kernel) ENTRY(resume_kernel)
cli
mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count
tst r0, r0 tst r0, r0
bf noresched bf noresched
...@@ -105,28 +106,9 @@ need_resched: ...@@ -105,28 +106,9 @@ need_resched:
and #0xf0, r0 ! interrupts off (exception path)? and #0xf0, r0 ! interrupts off (exception path)?
cmp/eq #0xf0, r0 cmp/eq #0xf0, r0
bt noresched bt noresched
mov.l 1f, r0
mov.l r0, @(TI_PRE_COUNT,r8)
#ifdef CONFIG_TRACE_IRQFLAGS
mov.l 3f, r0 mov.l 3f, r0
jsr @r0 jsr @r0 ! call preempt_schedule_irq
nop
#endif
sti
mov.l 2f, r0
jsr @r0
nop
mov #0, r0
mov.l r0, @(TI_PRE_COUNT,r8)
cli
#ifdef CONFIG_TRACE_IRQFLAGS
mov.l 4f, r0
jsr @r0
nop nop
#endif
bra need_resched bra need_resched
nop nop
...@@ -137,10 +119,7 @@ noresched: ...@@ -137,10 +119,7 @@ noresched:
.align 2 .align 2
1: .long PREEMPT_ACTIVE 1: .long PREEMPT_ACTIVE
2: .long schedule 2: .long schedule
#ifdef CONFIG_TRACE_IRQFLAGS 3: .long preempt_schedule_irq
3: .long trace_hardirqs_on
4: .long trace_hardirqs_off
#endif
#endif #endif
ENTRY(resume_userspace) ENTRY(resume_userspace)
......
...@@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image) ...@@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image)
/* now call it */ /* now call it */
rnk = (relocate_new_kernel_t) reboot_code_buffer; rnk = (relocate_new_kernel_t) reboot_code_buffer;
(*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); (*rnk)(page_list, reboot_code_buffer, P2SEGADDR(image->start), vbr_reg);
} }
void arch_crash_save_vmcoreinfo(void) void arch_crash_save_vmcoreinfo(void)
......
...@@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child) ...@@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child)
void user_disable_single_step(struct task_struct *child) void user_disable_single_step(struct task_struct *child)
{ {
struct pt_regs *regs = child->thread.uregs;
regs->sr &= ~SR_SSTEP; regs->sr &= ~SR_SSTEP;
} }
......
...@@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void) ...@@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void)
(unsigned long)(free_mem >> 20)); (unsigned long)(free_mem >> 20));
crashk_res.start = crash_base; crashk_res.start = crash_base;
crashk_res.end = crash_base + crash_size - 1; crashk_res.end = crash_base + crash_size - 1;
insert_resource(&iomem_resource, &crashk_res);
} }
} }
#else #else
...@@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn, ...@@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn,
request_resource(res, &data_resource); request_resource(res, &data_resource);
request_resource(res, &bss_resource); request_resource(res, &bss_resource);
#ifdef CONFIG_KEXEC
if (crashk_res.start != crashk_res.end)
request_resource(res, &crashk_res);
#endif
add_active_range(nid, start_pfn, end_pfn); add_active_range(nid, start_pfn, end_pfn);
} }
......
...@@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second, ...@@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
version = call >> 16; /* hack for backward compatibility */ version = call >> 16; /* hack for backward compatibility */
call &= 0xffff; call &= 0xffff;
if (call <= SEMCTL) if (call <= SEMTIMEDOP)
switch (call) { switch (call) {
case SEMOP: case SEMOP:
return sys_semtimedop(first, return sys_semtimedop(first,
......
...@@ -101,7 +101,7 @@ static int __init memchunk_setup(char *str) ...@@ -101,7 +101,7 @@ static int __init memchunk_setup(char *str)
} }
__setup("memchunk.", memchunk_setup); __setup("memchunk.", memchunk_setup);
static void memchunk_cmdline_override(char *name, unsigned long *sizep) static void __init memchunk_cmdline_override(char *name, unsigned long *sizep)
{ {
char *p = boot_command_line; char *p = boot_command_line;
int k = strlen(name); int k = strlen(name);
...@@ -118,8 +118,8 @@ static void memchunk_cmdline_override(char *name, unsigned long *sizep) ...@@ -118,8 +118,8 @@ static void memchunk_cmdline_override(char *name, unsigned long *sizep)
} }
} }
int platform_resource_setup_memory(struct platform_device *pdev, int __init platform_resource_setup_memory(struct platform_device *pdev,
char *name, unsigned long memsize) char *name, unsigned long memsize)
{ {
struct resource *r; struct resource *r;
dma_addr_t dma_handle; dma_addr_t dma_handle;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment