1. 19 Feb, 2015 6 commits
    • Daniel Thompson's avatar
      kdb: Provide forward search at more prompt · fb6daa75
      Daniel Thompson authored
      Currently kdb allows the output of comamnds to be filtered using the
      | grep feature. This is useful but does not permit the output emitted
      shortly after a string match to be examined without wading through the
      entire unfiltered output of the command. Such a feature is particularly
      useful to navigate function traces because these traces often have a
      useful trigger string *before* the point of interest.
      
      This patch reuses the existing filtering logic to introduce a simple
      forward search to kdb that can be triggered from the more prompt.
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      fb6daa75
    • Daniel Thompson's avatar
      kdb: Fix a prompt management bug when using | grep · ab08e464
      Daniel Thompson authored
      Currently when the "| grep" feature is used to filter the output of a
      command then the prompt is not displayed for the subsequent command.
      Likewise any characters typed by the user are also not echoed to the
      display. This rather disconcerting problem eventually corrects itself
      when the user presses Enter and the kdb_grepping_flag is cleared as
      kdb_parse() tries to make sense of whatever they typed.
      
      This patch resolves the problem by moving the clearing of this flag
      from the middle of command processing to the beginning.
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      ab08e464
    • Daniel Thompson's avatar
      kdb: Remove stack dump when entering kgdb due to NMI · 54543881
      Daniel Thompson authored
      Issuing a stack dump feels ergonomically wrong when entering due to NMI.
      
      Entering due to NMI is normally a reaction to a user request, either the
      NMI button on a server or a "magic knock" on a UART. Therefore the
      backtrace behaviour on entry due to NMI should be like SysRq-g (no stack
      dump) rather than like oops.
      
      Note also that the stack dump does not offer any information that
      cannot be trivial retrieved using the 'bt' command.
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      54543881
    • Daniel Thompson's avatar
      kdb: Avoid printing KERN_ levels to consoles · f7d4ca8b
      Daniel Thompson authored
      Currently when kdb traps printk messages then the raw log level prefix
      (consisting of '\001' followed by a numeral) does not get stripped off
      before the message is issued to the various I/O handlers supported by
      kdb. This causes annoying visual noise as well as causing problems
      grepping for ^. It is also a change of behaviour compared to normal usage
      of printk() usage. For example <SysRq>-h ends up with different output to
      that of kdb's "sr h".
      
      This patch addresses the problem by stripping log levels from messages
      before they are issued to the I/O handlers. printk() which can also
      act as an i/o handler in some cases is special cased; if the caller
      provided a log level then the prefix will be preserved when sent to
      printk().
      
      The addition of non-printable characters to the output of kdb commands is a
      regression, albeit and extremely elderly one, introduced by commit
      04d2c8c8 ("printk: convert the format for KERN_<LEVEL> to a 2 byte
      pattern"). Note also that this patch does *not* restore the original
      behaviour from v3.5. Instead it makes printk() from within a kdb command
      display the message without any prefix (i.e. like printk() normally does).
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      f7d4ca8b
    • Jason Wessel's avatar
      kdb: Fix off by one error in kdb_cpu() · df0036d1
      Jason Wessel authored
      There was a follow on replacement patch against the prior
      "kgdb: Timeout if secondary CPUs ignore the roundup".
      
      See: https://lkml.org/lkml/2015/1/7/442
      
      This patch is the delta vs the patch that was committed upstream:
        * Fix an off-by-one error in kdb_cpu().
        * Replace NR_CPUS with CONFIG_NR_CPUS to tell checkpatch that we
          really want a static limit.
        * Removed the "KGDB: " prefix from the pr_crit() in debug_core.c
          (kgdb-next contains a patch which introduced pr_fmt() to this file
          to the tag will now be applied automatically).
      
      Cc: Daniel Thompson <daniel.thompson@linaro.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      df0036d1
    • Jay Lan's avatar
      kdb: fix incorrect counts in KDB summary command output · 14675592
      Jay Lan authored
      The output of KDB 'summary' command should report MemTotal, MemFree
      and Buffers output in kB. Current codes report in unit of pages.
      
      A define of K(x) as
      is defined in the code, but not used.
      
      This patch would apply the define to convert the values to kB.
      Please include me on Cc on replies. I do not subscribe to linux-kernel.
      Signed-off-by: default avatarJay Lan <jlan@sgi.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      14675592
  2. 09 Feb, 2015 5 commits
    • Linus Torvalds's avatar
      Linux 3.19 · bfa76d49
      Linus Torvalds authored
      bfa76d49
    • Linus Torvalds's avatar
      Merge tag 'nios2-fixes-v3.19-final' of git://git.rocketboards.org/linux-socfpga-next · da2d96d3
      Linus Torvalds authored
      Pull nios2 fix from Ley Foon Tan:
       "This fixes incorrect behavior of some user programs"
      
      * tag 'nios2-fixes-v3.19-final' of git://git.rocketboards.org/linux-socfpga-next:
        nios2: fix unhandled signals
      da2d96d3
    • Linus Torvalds's avatar
      Merge git://git.kvack.org/~bcrl/aio-fixes · cdecbb33
      Linus Torvalds authored
      Pull aio nested sleep annotation from Ben LaHaise,
      
      * git://git.kvack.org/~bcrl/aio-fixes:
        aio: annotate aio_read_event_ring for sleep patterns
      cdecbb33
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.19-rc7' of... · 4e02370f
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull ftrace fixes from Steven Rostedt:
       "During testing Sedat Dilek hit a "suspicious RCU usage" splat that
        pointed out a real bug.  During suspend and resume the tlb_flush
        tracepoint is called when the CPU is going offline.  As the CPU has
        been noted as offline, RCU is ignoring that CPU, which means that it
        can not use RCU protected locks.  When tracepoints are activated, they
        require RCU locking, and if RCU is ignoring a CPU that runs a
        tracepoint, there is a chance that the tracepoint could cause
        corruption.
      
        The solution was to change the tracepoint into a
        TRACE_EVENT_CONDITION() which allows us to check a condition to
        determine if the tracepoint should be called or not.  If the condition
        is not met, the rcu protected code will not be executed.  By adding
        the condition "cpu_online(smp_processor_id())", this will prevent the
        RCU protected code from being executed if the CPU is marked offline.
      
        After adding this, another bug was discovered.  As RCU checks rcu
        callers, if a rcu call is not done, there is no check (obviously).  We
        found that tracepoints could be added in RCU ignored locations and not
        have lockdep complain until the tracepoint is activated.  This missed
        places where tracepoints were added in places they should not have
        been.  To fix this, code was added in 3.18 that if lockdep is enabled,
        any tracepoint will still call the rcu checks even if the tracepoint
        is not enabled.  The bug here, is that the check does not take the
        CONDITION into account.  As the condition may prevent tracepoints from
        being activated in RCU ignored areas (as the one patch does), we get
        false positives when we enable lockdep and hit a tracepoint that the
        condition prevents it from being called in a RCU ignored location.
      
        The fix for this is to add the CONDITION to the rcu checks, even if
        the tracepoint is not enabled"
      
      * tag 'trace-fixes-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        x86/tlb/trace: Do not trace on CPU that is offline
        tracing: Add condition check to RCU lockdep checks
      4e02370f
    • Chung-Ling Tang's avatar
      nios2: fix unhandled signals · a3248d60
      Chung-Ling Tang authored
      Follow other architectures for user fault handling.
      Signed-off-by: default avatarChung-Ling Tang <cltang@codesourcery.com>
      Acked-by: default avatarLey Foon Tan <lftan@altera.com>
      a3248d60
  3. 08 Feb, 2015 2 commits
    • Steven Rostedt (Red Hat)'s avatar
      x86/tlb/trace: Do not trace on CPU that is offline · 6c8465a8
      Steven Rostedt (Red Hat) authored
      When taking a CPU down for suspend and resume, a tracepoint may be called
      when the CPU has been designated offline. As tracepoints require RCU for
      protection, they must not be called if the current CPU is offline.
      
      Unfortunately, trace_tlb_flush() is called in this scenario as was noted
      by LOCKDEP:
      
      ...
      
       Disabling non-boot CPUs ...
       intel_pstate CPU 1 exiting
      
       ===============================
       smpboot: CPU 1 didn't die...
       [ INFO: suspicious RCU usage. ]
       3.19.0-rc7-next-20150204.1-iniza-small #1 Not tainted
       -------------------------------
       include/trace/events/tlb.h:35 suspicious rcu_dereference_check() usage!
      
       other info that might help us debug this:
      
       RCU used illegally from offline CPU!
       rcu_scheduler_active = 1, debug_locks = 0
       no locks held by swapper/1/0.
      
       stack backtrace:
       CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.19.0-rc7-next-20150204.1-iniza-small #1
       Hardware name: SAMSUNG ELECTRONICS CO., LTD. 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
        0000000000000001 ffff88011a44fe18 ffffffff817e370d 0000000000000011
        ffff88011a448290 ffff88011a44fe48 ffffffff810d6847 ffff8800c66b9600
        0000000000000001 ffff88011a44c000 ffffffff81cb3900 ffff88011a44fe78
       Call Trace:
        [<ffffffff817e370d>] dump_stack+0x4c/0x65
        [<ffffffff810d6847>] lockdep_rcu_suspicious+0xe7/0x120
        [<ffffffff810b71a5>] idle_task_exit+0x205/0x2c0
        [<ffffffff81054c4e>] play_dead_common+0xe/0x50
        [<ffffffff81054ca5>] native_play_dead+0x15/0x140
        [<ffffffff8102963f>] arch_cpu_idle_dead+0xf/0x20
        [<ffffffff810cd89e>] cpu_startup_entry+0x37e/0x580
        [<ffffffff81053e20>] start_secondary+0x140/0x150
       intel_pstate CPU 2 exiting
      
      ...
      
      By converting the tlb_flush tracepoint to a TRACE_EVENT_CONDITION where the
      condition is cpu_online(smp_processor_id()), we can avoid calling RCU protected
      code when the CPU is offline.
      
      Link: http://lkml.kernel.org/r/CA+icZUUGiGDoL5NU8RuxKzFjoLjEKRtUWx=JB8B9a0EQv-eGzQ@mail.gmail.com
      
      Cc: stable@vger.kernel.org # 3.17+
      Fixes: d17d8f9d "x86/mm: Add tracepoints for TLB flushes"
      Reported-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Tested-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Suggested-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarDave Hansen <dave@sr71.net>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      6c8465a8
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add condition check to RCU lockdep checks · a05d59a5
      Steven Rostedt (Red Hat) authored
      The trace_tlb_flush() tracepoint can be called when a CPU is going offline.
      When a CPU is offline, RCU is no longer watching that CPU and since the
      tracepoint is protected by RCU, it must not be called. To prevent the
      tlb_flush tracepoint from being called when the CPU is offline, it was
      converted to a TRACE_EVENT_CONDITION where the condition checks if the
      CPU is online before calling the tracepoint.
      
      Unfortunately, this was not enough to stop lockdep from complaining about
      it. Even though the RCU protected code of the tracepoint will never be
      called, the condition is hidden within the tracepoint, and even though the
      condition prevents RCU code from being called, the lockdep checks are
      outside the tracepoint (this is to test tracepoints even when they are not
      enabled).
      
      Even though tracepoints should be checked to be RCU safe when they are not
      enabled, the condition should still be considered when checking RCU.
      
      Link: http://lkml.kernel.org/r/CA+icZUUGiGDoL5NU8RuxKzFjoLjEKRtUWx=JB8B9a0EQv-eGzQ@mail.gmail.com
      
      Fixes: 3a630178 "tracing: generate RCU warnings even when tracepoints are disabled"
      Cc: stable@vger.kernel.org # 3.18+
      Acked-by: default avatarDave Hansen <dave@sr71.net>
      Reported-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Tested-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      a05d59a5
  4. 07 Feb, 2015 2 commits
  5. 06 Feb, 2015 7 commits
    • Linus Torvalds's avatar
      Merge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of... · 26cdd1f7
      Linus Torvalds authored
      Merge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull timer and x86 fix from Ingo Molnar:
       "A CLOCK_TAI early expiry fix and an x86 microcode driver oops fix"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hrtimer: Fix incorrect tai offset calculation for non high-res timer systems
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, microcode: Return error from driver init code when loader is disabled
      26cdd1f7
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 396e9099
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Fix deadline parameter modification handling
        sched/wait: Remove might_sleep() from wait_event_cmd()
        sched: Fix crash if cpuset_cpumask_can_shrink() is passed an empty cpumask
        sched/fair: Avoid using uninitialized variable in preferred_group_nid()
      396e9099
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 29f12c48
      Linus Torvalds authored
      Pull core kernel fixes from Ingo Molnar:
       "Two liblockdep fixes and a CPU hotplug race fix"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/liblockdep: don't include host headers
        tools/liblockdep: ignore generated .so file
        smpboot: Add missing get_online_cpus() in smpboot_register_percpu_thread()
      29f12c48
    • Linus Torvalds's avatar
      Merge tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 2af613d3
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Hopefully the final pull request for 3.19: this ended up with a
        slightly higher volume than wished, but I put them all as they are
        either stable or 3.19 regression fixes.
      
        Most of commits are from ASoC, and have been stewed for a while in
        linux-next.  The only change in the common code is the regression
        fixes for ASoC AC97 stuff wrt device registrations.  The rest are
        device-specific, mostly small fixes in various ASoC drivers and ak411x
        on ice1724 boards"
      
      * tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: Intel: fix sst firmware path for cht-bsw-rt5672
        ARM: dts: Fix I2S1, I2S2 compatible for exynos4 SoCs
        ASoC: sgtl5000: add delay before first I2C access
        MAINTAINERS: ASoC: add maintainer for Intel BDW/HSW ASoC driver
        ASoC: atmel_ssc_dai: fix the setting for DSP mode
        ASoC: sgtl5000: Use shift mask when setting codec mode
        ASoC: tlv320aic3x: Fix data delay configuration
        ALSA: ak411x: Fix stall in work callback
        ASoC: Intel: Used lock version to update shim registers
        ASoC: wm8731: init mutex in i2c init path
        ASoC: atmel_ssc_dai: fix start event for I2S mode
        ASoC: rt5640: Add RT5642 ACPI ID for Intel Baytrail
        ASoC: wm97xx: Reset AC'97 device before registering it
        ASoC: Add support for allocating AC'97 device before registering it
      2af613d3
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew Morton) · 48beb121
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "7 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/debug_pagealloc: fix build failure on ppc and some other archs
        nilfs2: fix deadlock of segment constructor over I_SYNC flag
        MAINTAINERS: remove SUPERH website
        memcg, shmem: fix shmem migration to use lrucare
        mm: export "high_memory" symbol on !MMU
        .mailmap: update Konstantin Khlebnikov's email address
        mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
      48beb121
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · dbf3b7dd
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "The pending MIPS fixes for 3.19.  All across the field and nothing
        particularly severe or dramatic"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (23 commits)
        IRQCHIP: mips-gic: Avoid rerouting timer IRQs for smp-cmp
        MIPS: Fix syscall_get_nr for the syscall exit tracing.
        MIPS: elf2ecoff: Ignore PT_MIPS_ABIFLAGS program headers.
        MIPS: elf2ecoff: Rewrite main processing loop to switch.
        MIPS: fork: Fix MSA/FPU/DSP context duplication race
        MIPS: Fix C0_Pagegrain[IEC] support.
        MIPS: traps: Fix inline asm ctc1 missing .set hardfloat
        MIPS: mipsregs.h: Add write_32bit_cp1_register()
        MIPS: Fix kernel lockup or crash after CPU offline/online
        MIPS: OCTEON: fix kernel crash when offlining a CPU
        MIPS: ARC: Fix build error.
        MIPS: IRQ: Fix disable_irq on CPU IRQs
        MIPS: smp-mt,smp-cmp: Enable all HW IRQs on secondary CPUs
        MIPS: Fix restart of indirect syscalls
        MIPS: ELF: fix loading o32 binaries on 64-bit kernels
        MIPS: mips-cm: Fix sparse warnings
        MIPS: Kconfig: Fix recursive dependency.
        MIPS: Compat: Fix build error if CONFIG_MIPS32_COMPAT but no compat ABI.
        MIPS: JZ4740: Fixup #include's (sparse)
        MIPS: Wire up execveat(2).
        ...
      dbf3b7dd
    • Yann Droneaud's avatar
      Revert "IB/core: Add support for extended query device caps" · 43c61165
      Yann Droneaud authored
      While commit 7e36ef82 ("IB/core: Temporarily disable
      ex_query_device uverb") is correct as it makes the extended
      QUERY_DEVICE uverb (which came as part of commit 5a77abf9
      ("IB/core: Add support for extended query device caps") and commit
      860f10a7 ("IB/core: Add flags for on demand paging support")) not
      available to userspace, it doesn't address the initial issue regarding
      ib_copy_to_udata() [1][2].
      
      Additionally, further discussions around this new uverb seems to
      conclude it would require a different data structure than the one
      currently described in <rdma/ib_user_verbs.h> [3].
      
      Both of these issues require a revert of the changes, so this patch
      partially reverts commit 8cdd312c ("IB/mlx5: Implement the ODP
      capability query verb") and commit 860f10a7 ("IB/core: Add flags
      for on demand paging support") and fully reverts commit 5a77abf9
      ("IB/core: Add support for extended query device caps").
      
      [1] "Re: [PATCH v3 06/17] IB/core: Add support for extended query device caps"
          http://mid.gmane.org/1418733236.2779.26.camel@opteya.com
      
      [2] "Re: [PATCH] IB/core: Temporarily disable ex_query_device uverb"
          http://mid.gmane.org/1423067503.3030.83.camel@opteya.com
      
      [3] "RE: [PATCH v1 1/5] IB/uverbs: ex_query_device: answer must not depend on request's comp_mask"
          http://mid.gmane.org/2807E5FD2F6FDA4886F6618EAC48510E0CC12C30@CRSMSX101.amr.corp.intel.com
      
      Cc: Eli Cohen <eli@mellanox.com>
      Cc: Haggai Eran <haggaie@mellanox.com>
      Cc: Ira Weiny <ira.weiny@intel.com>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Shachar Raindel <raindel@mellanox.com>
      Signed-off-by: default avatarYann Droneaud <ydroneaud@opteya.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      43c61165
  6. 05 Feb, 2015 18 commits