From: Russell King Date: Mon, 21 May 2012 14:15:24 +0000 (+0100) Subject: Merge branch 'misc' into for-linus X-Git-Tag: v3.5-rc1~182^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4175160b065e74572819a320dcd34129224a4e1c;p=platform%2Fkernel%2Flinux-exynos.git Merge branch 'misc' into for-linus Conflicts: arch/arm/kernel/ptrace.c --- 4175160b065e74572819a320dcd34129224a4e1c diff --cc arch/arm/kernel/ptrace.c index 9650c14,50d5a7d..14e3826 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@@ -921,28 -935,11 +922,18 @@@ asmlinkage int syscall_trace(int why, s current_thread_info()->syscall = scno; + /* + * IP is used to denote syscall entry/exit: + * IP = 0 -> entry, =1 -> exit + */ + ip = regs->ARM_ip; + regs->ARM_ip = why; + - /* the 0x80 provides a way for the tracing parent to distinguish - between a syscall stop and SIGTRAP delivery */ - ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) - ? 0x80 : 0)); - /* - * this isn't the same as continuing with a signal, but it will do - * for normal use. strace only continues with a signal if the - * stopping signal is not SIGTRAP. -brl - */ - if (current->exit_code) { - send_sig(current->exit_code, current, 1); - current->exit_code = 0; - } + if (why) + tracehook_report_syscall_exit(regs, 0); + else if (tracehook_report_syscall_entry(regs)) + current_thread_info()->syscall = -1; + regs->ARM_ip = ip; return current_thread_info()->syscall; diff --cc arch/arm/vfp/vfpmodule.c index b0197b2,a8f541b..58696192 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c @@@ -672,8 -579,10 +672,8 @@@ static int __init vfp_init(void } else { hotcpu_notifier(vfp_hotplug, 0); - smp_call_function(vfp_enable, NULL, 1); - VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT; /* Extract the architecture version */ - printk("implementor %02x architecture %d part %02x variant %x rev %x\n", + pr_cont("implementor %02x architecture %d part %02x variant %x rev %x\n", (vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT, (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT, (vfpsid & FPSID_PART_MASK) >> FPSID_PART_BIT,