Skip to content
  1. Feb 24, 2014
  2. Feb 23, 2014
    • Greg Kroah-Hartman's avatar
      Revert "tty: Set correct tty name in 'active' sysfs attribute" · 5c0a2450
      Greg Kroah-Hartman authored
      This reverts commit d8a5dc30
      
      .
      
      This breaks plymouth installs, either because plymouth is using the file
      "incorrectly" or because the patch is incorrect.  Either way, this needs
      to be reverted until it is all figured out.
      
      Reported-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
      Reported-by: default avatarRay Strode <halfline@gmail.com>
      Cc: Lennart Poettering <lennart@poettering.net>
      Cc: Kay Sievers <kay@vrfy.org>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Cc: David Herrmann <dh.herrmann@gmail.com>
      Cc: Werner Fink <werner@suse.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5c0a2450
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5580723f
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixlets: a fair number of them resulting from the new
        SCHED_DEADLINE code"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Remove useless dl_nr_total
        sched/deadline: Test for CPU's presence explicitly
        sched: Add 'flags' argument to sched_{set,get}attr() syscalls
        sched: Fix information leak in sys_sched_getattr()
        sched,numa: add cond_resched to task_numa_work
        sched/core: Make dl_b->lock IRQ safe
        sched/core: Fix sched_rt_global_validate
        sched/deadline: Fix overflow to handle period==0 and deadline!=0
        sched/deadline: Fix bad accounting of nr_running
      5580723f
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b3e7c9b
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc fixlets from all around the place"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/uncore: Fix IVT/SNB-EP uncore CBOX NID filter table
        perf/x86: Correctly use FEATURE_PDCM
        perf, nmi: Fix unknown NMI warning
        perf trace: Fix ioctl 'request' beautifier build problems on !(i386 || x86_64) arches
        perf trace: Add fallback definition of EFD_SEMAPHORE
        perf list: Fix checking for supported events on older kernels
        perf tools: Handle PERF_RECORD_HEADER_EVENT_TYPE properly
        perf probe: Do not add offset twice to uprobe address
        perf/x86: Fix Userspace RDPMC switch
        perf/x86/intel/p6: Add userspace RDPMC quirk for PPro
      9b3e7c9b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 0f0ca143
      Linus Torvalds authored
      Pull hwmon fix from Guenter Roeck:
       "Fix writing the minimum temperature in max1668 driver"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (max1668) Fix writing the minimum temperature
      0f0ca143
    • Linus Torvalds's avatar
      Merge branch 'xfs-fixes-for-3.14-rc4' of git://oss.sgi.com/xfs/xfs · 645ceee8
      Linus Torvalds authored
      Pull xfs fixes from Dave Chinner:
       "This is the first pull request I've had to do for you, so I'm still
        sorting things out.  The reason I'm sending this and not Ben should be
        obvious from the first commit below - SGI has stepped down from the
        XFS maintainership role.  As such, I'd like to take another
        opportunity to thank them for their many years of effort maintaining
        XFS and supporting the XFS community that they developed from the
        ground up.
      
        So I haven't had time to work things like signed tags into my
        workflows yet, so this is just a repo branch I'm asking you to pull
        from.  And yes, I named the branch -rc4 because I wanted the fixes in
        rc4, not because the branch was for merging into -rc3.  Probably not
        right, either.
      
        Anyway, I should have everything sorted out by the time the next merge
        window comes around.  If there's anything that you don't like in the
        pull req, feel free to flame me unmercifully.
      
        The changes are fixes for recent regressions and important thinkos in
        verification code:
      
              - a log vector buffer alignment issue on ia32
              - timestamps on truncate got mangled
              - primary superblock CRC validation fixes and error message
                sanitisation"
      
      * 'xfs-fixes-for-3.14-rc4' of git://oss.sgi.com/xfs/xfs:
        xfs: limit superblock corruption errors to actual corruption
        xfs: skip verification on initial "guess" superblock read
        MAINTAINERS: SGI no longer maintaining XFS
        xfs: xfs_sb_read_verify() doesn't flag bad crcs on primary sb
        xfs: ensure correct log item buffer alignment
        xfs: ensure correct timestamp updates from truncate
      645ceee8
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo' of... · a9d3f94e
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
       into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
        * Handle PERF_RECORD_HEADER_EVENT_TYPE properly. (Jiri Olsa)
      
        * Fix checking for supported events on older kernels in
          'perf list' (Vince Weaver)
      
        * Do not add offset twice to uprobe address in
          'perf probe' (Masami Hiramatsu)
      
        * Fix perf trace's ioctl 'request' beautifier build problems
          on !(i386 || x86_64) arches (Arnaldo Carvalho de Melo)
      
        * Fix 'perf trace' build by adding a fallback definition for
          EFD_SEMAPHORE (Ben Hutchings)
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a9d3f94e
  3. Feb 22, 2014
    • Thomas Gleixner's avatar
      Merge tag 'irqchip-mvebu-fixes-3.14' of git://git.infradead.org/linux-mvebu into irq/urgent · ec79b577
      Thomas Gleixner authored
      
      
      irqchip mvebu fixes for v3.14
      
       - orion:
          - fixes for clearing bridge cause register, and clearing stale interrupts
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      ec79b577
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 10527106
      Linus Torvalds authored
      Pull devicetree fixes from Grant Likely:
       "Device tree compatible match order bug fix
      
        This branch contains a bug fix for the way devicetree code identifies
        the type of device.  Device drivers can contain a list of
        of_device_ids, but it more than one entry will match, then the device
        driver may choose the wrong one.  Commit 10535314, "match each node
        compatible against all given matches first", was queued for v3.14 but
        ended up causing other bugs.  Commit 06b29e76 attempted to fix it
        but it had other bugs.  Merely reverting the fix and waiting until
        v3.15 isn't a good option because there is code in v3.14 that depends
        on the revised behaviour to boot.
      
        This branch should finally fixes the problem correctly.  This time
        instead of just hoping that the patch is correct, this branch also
        adds new testcases that validate the behaviour.
      
        The changes in this branch are larger than I would like for a -rc
        pull, but moving the test case data out of out of arch/arm so that it
        could be validated on other architectures was important"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of: Add self test for of_match_node()
        of: Move testcase FDT data into drivers/of
        of: reimplement the matching method for __of_match_node()
        Revert "of: search the best compatible match first in __of_match_node()"
      10527106
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 0a4e836a
      Linus Torvalds authored
      Pull watchdog fix from Wim Van Sebroeck:
       "It corrects the error code when no device was found for w83697hf_wdt"
      
      * git://www.linux-watchdog.org/linux-watchdog:
        watchdog: w83697hf_wdt: return ENODEV if no device was found
      0a4e836a
    • Andrew Lunn's avatar
      irqchip: orion: Fix getting generic chip pointer. · d86e9af6
      Andrew Lunn authored
      
      
      Enabling SPARSE_IRQ shows up a bug in the irq-orion bridge interrupt
      handler. The bridge interrupt is implemented using a single generic
      chip. Thus the parameter passed to irq_get_domain_generic_chip()
      should always be zero.
      
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Acked-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Fixes: 9dbd90f1
      
       ("irqchip: Add support for Marvell Orion SoCs")
      Cc: <stable@vger.kernel.org> # v3.11+
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      d86e9af6
    • Stephane Eranian's avatar
      perf/x86/uncore: Fix IVT/SNB-EP uncore CBOX NID filter table · 337397f3
      Stephane Eranian authored
      
      
      This patch updates the CBOX PMU filters mapping tables for SNB-EP
      and IVT (model 45 and 62 respectively).
      
      The NID umask always comes in addition to another umask.
      When set, the NID filter is applied.
      
      The current mapping tables were missing some code/umask
      combinations to account for the NID umask. This patch
      fixes that.
      
      Cc: mingo@elte.hu
      Cc: ak@linux.intel.com
      Reviewed-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140219131018.GA24475@quad
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      337397f3
    • Peter Zijlstra's avatar
      perf/x86: Correctly use FEATURE_PDCM · c9b08884
      Peter Zijlstra authored
      
      
      The current code simply assumes Intel Arch PerfMon v2+ to have
      the IA32_PERF_CAPABILITIES MSR; the SDM specifies that we should check
      CPUID[1].ECX[15] (aka, FEATURE_PDCM) instead.
      
      This was found by KVM which implements v2+ but didn't provide the
      capabilities MSR. Change the code to DTRT; KVM will also implement the
      MSR and return 0.
      
      Cc: pbonzini@redhat.com
      Reported-by: default avatar"Michael S. Tsirkin" <mst@redhat.com>
      Suggested-by: default avatarEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140203132903.GI8874@twins.programming.kicks-ass.net
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      c9b08884
    • Markus Metzger's avatar
      perf, nmi: Fix unknown NMI warning · a3ef2229
      Markus Metzger authored
      
      
      When using BTS on Core i7-4*, I get the below kernel warning.
      
      $ perf record -c 1 -e branches:u ls
      Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
       kernel:[  438.317893] Uhhuh. NMI received for unknown reason 31 on CPU 2.
      
      Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
       kernel:[  438.317920] Do you have a strange power saving mode enabled?
      
      Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
       kernel:[  438.317945] Dazed and confused, but trying to continue
      
      Make intel_pmu_handle_irq() take the full exit path when returning early.
      
      Cc: eranian@google.com
      Cc: peterz@infradead.org
      Cc: mingo@kernel.org
      Signed-off-by: default avatarMarkus Metzger <markus.t.metzger@intel.com>
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392425048-5309-1-git-send-email-andi@firstfloor.org
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      a3ef2229
    • Matthieu CASTET's avatar
      usb: chipidea: need to mask when writting endptflush and endptprime · 5bf5dbed
      Matthieu CASTET authored
      
      
      ENDPTFLUSH and ENDPTPRIME registers are set by software and clear
      by hardware. There is a bit for each endpoint. When we are setting
      a bit for an endpoint we should make sure we do not touch other
      endpoint bit. There is a race condition if the hardware clear the
      bit between the read and the write in hw_write.
      
      Cc: stable <stable@vger.kernel.org> # 3.11+
      Signed-off-by: default avatarPeter Chen <peter.chen@freescale.com>
      Signed-off-by: default avatarMatthieu CASTET <matthieu.castet@parrot.com>
      Tested-by: default avatarMichael Grzeschik <mgrzeschik@pengutronix.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5bf5dbed
    • Arve Hjønnevåg's avatar
      staging: binder: Fix death notifications · e194fd8a
      Arve Hjønnevåg authored
      The change (008fa749
      
      ) that moved the
      node release code to a separate function broke death notifications in
      some cases. When it encountered a reference without a death
      notification request, it would skip looking at the remaining
      references, and therefore fail to send death notifications for them.
      
      Cc: Colin Cross <ccross@android.com>
      Cc: Android Kernel Team <kernel-team@android.com>
      Cc: stable <stable@vger.kernel.org> # 3.10
      Signed-off-by: default avatarArve Hjønnevåg <arve@android.com>
      Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
      Signed-off-by: default avatarJeremy Compostella <jeremy.compostella@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e194fd8a
    • Kirill Tkhai's avatar
      sched/deadline: Remove useless dl_nr_total · 995b9ea4
      Kirill Tkhai authored
      
      
      In deadline class we do not have group scheduling like in RT.
      
      dl_nr_total is the same as dl_nr_running. So, one of them should
      be removed.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Juri Lelli <juri.lelli@gmail.com>
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/368631392675853@web20h.yandex.ru
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      995b9ea4
    • Boris Ostrovsky's avatar
      sched/deadline: Test for CPU's presence explicitly · 82b95800
      Boris Ostrovsky authored
      
      
      A hot-removed CPU may have ID that is numerically larger than the number of
      existing CPUs in the system (e.g. we can unplug CPU 4 from a system that
      has CPUs 0, 1 and 4).
      
      Thus the WARN_ONs should check whether the CPU in question is currently
      present, not whether its ID value is less than num_present_cpus().
      
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Juri Lelli <juri.lelli@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Reported-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392646353-1874-1-git-send-email-boris.ostrovsky@oracle.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      82b95800
    • Peter Zijlstra's avatar
      sched: Add 'flags' argument to sched_{set,get}attr() syscalls · 6d35ab48
      Peter Zijlstra authored
      
      
      Because of a recent syscall design debate; its deemed appropriate for
      each syscall to have a flags argument for future extension; without
      immediately requiring new syscalls.
      
      Cc: juri.lelli@gmail.com
      Cc: Ingo Molnar <mingo@redhat.com>
      Suggested-by: default avatarMichael Kerrisk <mtk.manpages@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140214161929.GL27965@twins.programming.kicks-ass.net
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      6d35ab48
    • Vegard Nossum's avatar
      sched: Fix information leak in sys_sched_getattr() · 4efbc454
      Vegard Nossum authored
      We're copying the on-stack structure to userspace, but forgot to give
      the right number of bytes to copy. This allows the calling process to
      obtain up to PAGE_SIZE bytes from the stack (and possibly adjacent
      kernel memory).
      
      This fix copies only as much as we actually have on the stack
      (attr->size defaults to the size of the struct) and leaves the rest of
      the userspace-provided buffer untouched.
      
      Found using kmemcheck + trinity.
      
      Fixes: d50dde5a
      
       ("sched: Add new scheduler syscalls to support an extended scheduling parameters ABI")
      Cc: Dario Faggioli <raistlin@linux.it>
      Cc: Juri Lelli <juri.lelli@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392585857-10725-1-git-send-email-vegard.nossum@oracle.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      4efbc454
    • Rik van Riel's avatar
      sched,numa: add cond_resched to task_numa_work · 3cf1962c
      Rik van Riel authored
      
      
      Normally task_numa_work scans over a fairly small amount of memory,
      but it is possible to run into a large unpopulated part of virtual
      memory, with no pages mapped. In that case, task_numa_work can run
      for a while, and it may make sense to reschedule as required.
      
      Cc: akpm@linux-foundation.org
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Signed-off-by: default avatarRik van Riel <riel@redhat.com>
      Reported-by: default avatarXing Gang <gang.xing@hp.com>
      Tested-by: default avatarChegu Vinod <chegu_vinod@hp.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392761566-24834-2-git-send-email-riel@redhat.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      3cf1962c
    • Juri Lelli's avatar
      sched/core: Make dl_b->lock IRQ safe · 49516342
      Juri Lelli authored
      
      
      Fix this lockdep warning:
      
      [   44.804600] =========================================================
      [   44.805746] [ INFO: possible irq lock inversion dependency detected ]
      [   44.805746] 3.14.0-rc2-test+ #14 Not tainted
      [   44.805746] ---------------------------------------------------------
      [   44.805746] bash/3674 just changed the state of lock:
      [   44.805746]  (&dl_b->lock){+.....}, at: [<ffffffff8106ad15>] sched_rt_handler+0x132/0x248
      [   44.805746] but this lock was taken by another, HARDIRQ-safe lock in the past:
      [   44.805746]  (&rq->lock){-.-.-.}
      
      and interrupts could create inverse lock ordering between them.
      
      [   44.805746]
      [   44.805746] other info that might help us debug this:
      [   44.805746]  Possible interrupt unsafe locking scenario:
      [   44.805746]
      [   44.805746]        CPU0                    CPU1
      [   44.805746]        ----                    ----
      [   44.805746]   lock(&dl_b->lock);
      [   44.805746]                                local_irq_disable();
      [   44.805746]                                lock(&rq->lock);
      [   44.805746]                                lock(&dl_b->lock);
      [   44.805746]   <Interrupt>
      [   44.805746]     lock(&rq->lock);
      
      by making dl_b->lock acquiring always IRQ safe.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Signed-off-by: default avatarJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392107067-19907-3-git-send-email-juri.lelli@gmail.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      49516342
    • Juri Lelli's avatar
      sched/core: Fix sched_rt_global_validate · e9e7cb38
      Juri Lelli authored
      
      
      Don't compare sysctl_sched_rt_runtime against sysctl_sched_rt_period if
      the former is equal to RUNTIME_INF, otherwise disabling -rt bandwidth
      management (with CONFIG_RT_GROUP_SCHED=n) fails.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Signed-off-by: default avatarJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392107067-19907-2-git-send-email-juri.lelli@gmail.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      e9e7cb38
    • Steven Rostedt's avatar
      sched/deadline: Fix overflow to handle period==0 and deadline!=0 · 4df1638c
      Steven Rostedt authored
      
      
      While debugging the crash with the bad nr_running accounting, I hit
      another bug where, after running my sched deadline test, I was getting
      failures to take a CPU offline. It was giving me a -EBUSY error.
      
      Adding a bunch of trace_printk()s around, I found that the cpu
      notifier that called sched_cpu_inactive() was returning a failure. The
      overflow value was coming up negative?
      
      Talking this over with Juri, the problem is that the total_bw update was
      suppose to be made by dl_overflow() which, during my tests, seemed to
      not be called. Adding more trace_printk()s, it wasn't that it wasn't
      called, but it exited out right away with the check of new_bw being
      equal to p->dl.dl_bw. The new_bw calculates the ratio between period and
      runtime. The bug is that if you set a deadline, you do not need to set
      a period if you plan on the period being equal to the deadline. That
      is, if period is zero and deadline is not, then the system call should
      set the period to be equal to the deadline. This is done elsewhere in
      the code.
      
      The fix is easy, check if period is set, and if it is not, then use the
      deadline.
      
      Cc: Juri Lelli <juri.lelli@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140219135335.7e74abd4@gandalf.local.home
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      4df1638c
    • Juri Lelli's avatar
      sched/deadline: Fix bad accounting of nr_running · 3d5f35bd
      Juri Lelli authored
      
      
      Rostedt writes:
      
      My test suite was locking up hard when enabling mmiotracer. This was due
      to the mmiotracer placing all but one CPU offline. I found this out
      when I was able to reproduce the bug with just my stress-cpu-hotplug
      test. This bug baffled me because it would not always trigger, and
      would only trigger on the first run after boot up. The
      stress-cpu-hotplug test would crash hard the first run, or never crash
      at all. But a new reboot may cause it to crash on the first run again.
      
      I spent all week bisecting this, as I couldn't find a consistent
      reproducer. I finally narrowed it down to the sched deadline patches,
      and even more peculiar, to the commit that added the sched
      deadline boot up self test to the latency tracer. Then it dawned on me
      to what the bug was.
      
      All it took was to run a task under sched deadline to screw up the CPU
      hot plugging. This explained why it would lock up only on the first run
      of the stress-cpu-hotplug test. The bug happened when the boot up self
      test of the schedule latency tracer would test a deadline task. The
      deadline task would corrupt something that would cause CPU hotplug to
      fail. If it didn't corrupt it, the stress test would always work
      (there's no other sched deadline tasks that would run to cause
      problems). If it did corrupt on boot up, the first test would lockup
      hard.
      
      I proved this theory by running my deadline test program on another box,
      and then run the stress-cpu-hotplug test, and it would now consistently
      lock up. I could run stress-cpu-hotplug over and over with no problem,
      but once I ran the deadline test, the next run of the
      stress-cpu-hotplug would lock hard.
      
      After adding lots of tracing to the code, I found the cause. The
      function tracer showed that migrate_tasks() was stuck in an infinite
      loop, where rq->nr_running never equaled 1 to break out of it. When I
      added a trace_printk() to see what that number was, it was 335 and
      never decrementing!
      
      Looking at the deadline code I found:
      
      static void __dequeue_task_dl(struct rq *rq, struct task_struct *p, int flags) {
      	dequeue_dl_entity(&p->dl);
      	dequeue_pushable_dl_task(rq, p);
      }
      
      static void dequeue_task_dl(struct rq *rq, struct task_struct *p, int flags) {
      	update_curr_dl(rq);
      	__dequeue_task_dl(rq, p, flags);
      
      	dec_nr_running(rq);
      }
      
      And this:
      
      	if (dl_runtime_exceeded(rq, dl_se)) {
      		__dequeue_task_dl(rq, curr, 0);
      		if (likely(start_dl_timer(dl_se, curr->dl.dl_boosted)))
      			dl_se->dl_throttled = 1;
      		else
      			enqueue_task_dl(rq, curr, ENQUEUE_REPLENISH);
      
      		if (!is_leftmost(curr, &rq->dl))
      			resched_task(curr);
      	}
      
      Notice how we call __dequeue_task_dl() and in the else case we
      call enqueue_task_dl()? Also notice that dequeue_task_dl() has
      underscores where enqueue_task_dl() does not. The enqueue_task_dl()
      calls inc_nr_running(rq), but __dequeue_task_dl() does not. This is
      where we get nr_running out of sync.
      
      [snip]
      
      Another point where nr_running can get out of sync is when the dl_timer
      fires:
      
      	dl_se->dl_throttled = 0;
      	if (p->on_rq) {
      		enqueue_task_dl(rq, p, ENQUEUE_REPLENISH);
      		if (task_has_dl_policy(rq->curr))
      			check_preempt_curr_dl(rq, p, 0);
      		else
      			resched_task(rq->curr);
      
      This patch does two things:
      
       - correctly accounts for throttled tasks (that are now considered
         !running);
      
       - fixes the bug, updating nr_running from {inc,dec}_dl_tasks(),
         since we risk to update it twice in some situations (e.g., a
         task is dequeued while it has exceeded its budget).
      
      Cc: mingo@redhat.com
      Cc: torvalds@linux-foundation.org
      Cc: akpm@linux-foundation.org
      Reported-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Tested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392884379-13744-1-git-send-email-juri.lelli@gmail.com
      
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      3d5f35bd
    • Stanislav Kholmanskikh's avatar
      watchdog: w83697hf_wdt: return ENODEV if no device was found · 0cb1c3e8
      Stanislav Kholmanskikh authored
      
      
      Most WDT driver modules return ENODEV during modprobe if
      no valid device was found, but w83697hf_wdt returns EIO.
      
      Let w83697hf_wdt return ENODEV.
      
      Signed-off-by: default avatarStanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
      0cb1c3e8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 34acae3c
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
       "Three minor fixes from David Howells and Paul Gortmaker"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2]
        sparc32: make copy_to/from_user_page() usable from modular code
        sparc32: fix build failure for arch_jump_label_transform
      34acae3c
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 795233bf
      Linus Torvalds authored
      Pull ACPI and power management fixes from Rafael Wysocki:
       "These include two fixes for recent regressions related to ACPI, a
        cpufreq fix for breakage overlooked by a previous fix commit, two
        intel_pstate fixes for stuff added during the 3.13 cycle that need to
        go into -stable, three fixes for older bugs that also are -stable
        candidates, ACPI video blacklist changes related to BIOSes that behave
        in a special way on Windows 8, several build fixes for CONFIG_PM_SLEEP
        unset in ACPI drivers and an ACPI driver cleanup.
      
        Specifics:
      
         - Fix for a recent probing regression in the nouveau driver
           introduced by an ACPI change related to the handling of _DSM from
           Jiang Liu.
      
         - Fix for a dock station sysfs attribute that stopped working
           correctly after recent changes in the ACPI core.
      
         - cpufreq fix taking care of broken code related to CPU removal and
           overlooked by a previous recent fix in that area.  From Viresh
           Kumar.
      
         - Two intel_pstate fixes related to Baytrail support added during the
           3.13 cycle (candidates for -stable) from Dirk Brandewie.
      
         - ACPI video fix removing duplicate brightness values from the _BCL
           table which makes its user space interface behave sanely.  From
           Hans de Goede.
      
         - Fix for the powernow-k8 cpufreq driver making it initialize its
           per-CPU data structures correctly from Srivatsa S Bhat.
      
         - Fix for an obscure memory leak in the ACPI PCI interrupt allocation
           code (related to ISA) from Tomasz Nowicki.
      
         - ACPI video blacklist changes moving several systems that should use
           the native backlight interface instead of the ACPI one from the
           general ACPI _OSI blacklist the the ACPI video driver's blacklist
           where they belong.  This consists of an ACPI video driver update
           from Aaron Lu and a revert of a previous commit adding systems to
           the ACPI _OSI blacklist requested by Takashi Iwai.
      
         - Several fixes for build issues in ACPI drivers occuring when
           CONFIG_PM_SLEEP is unset from Shuah Khan.
      
         - Fix for an sscanf() format string in the ACPI Smart Battery
           Subsystem (SBS) driver from Luis G.F"
      
      * tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        intel_pstate: Add support for Baytrail turbo P states
        intel_pstate: Use LFM bus ratio as min ratio/P state
        ACPI / nouveau: fix probing regression related to _DSM
        Revert "ACPI: Blacklist Win8 OSI for some HP laptop 2013 models"
        ACPI / video: Add systems that should favour native backlight interface
        ACPI / video: Filter the _BCL table for duplicate brightness values
        cpufreq: powernow-k8: Initialize per-cpu data-structures properly
        cpufreq: remove sysfs link when a cpu != policy->cpu, is removed
        ACPI / PCI: Fix memory leak in acpi_pci_irq_enable()
        ACPI / dock: Make 'docked' sysfs attribute work as documented
        ACPI / SBS: Fix incorrect sscanf() string
        ACPI / thermal: fix thermal driver compile error when CONFIG_PM_SLEEP is undefined
        ACPI / SBS: fix SBS driver compile error when CONFIG_PM_SLEEP is undefined
        ACPI / fan: fix fan driver compile error when CONFIG_PM_SLEEP is undefined
        ACPI / button: fix button driver compile error when CONFIG_PM_SLEEP is undefined
        ACPI / battery: fix battery driver compile error when CONFIG_PM_SLEEP is undefined
        ACPI / AC: fix AC driver compile error when CONFIG_PM_SLEEP is undefined
      795233bf
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 7777d934
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "The fixes are only for the ARM-SMMU driver.  Here is the summary from
        Will Deacon:
      
         - Andreas Herrmann took the driver for a run with a real SATA
           controller, which caused the new mutex-based locking to explode
           since we require mappings in atomic context
      
         - Yifan fixed an issue with the page table creation, which then
           caused breakages with the way in which we flush descriptors out to
           the table walker
      
         - I ran the driver on a system where the SMMU is hooked into a
           coherent interconnect for table walks, and noticed a shareability
           mismatch between the CPU and the SMMU
      
        These issues are all fixed here and have been tested on both arm and
        arm64 based systems.
      
        Besides that I put a fix on-top to make the spinlock irq-safe, so that
        the code-paths can be used in the DMA-API"
      
      * tag 'iommu-fixes-v3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        arm/smmu: Use irqsafe spinlock for domain lock
        iommu/arm-smmu: fix compilation issue when !CONFIG_ARM_AMBA
        iommu/arm-smmu: set CBARn.BPSHCFG to NSH for s1-s2-bypass contexts
        iommu/arm-smmu: fix table flushing during initial allocations
        iommu/arm-smmu: really fix page table locking
        iommu/arm-smmu: fix pud/pmd entry fill sequence
      7777d934
    • Linus Torvalds's avatar
      Merge tag 'sound-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 04133209
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This time we got a slightly higher volume than previous times, but all
        device-specific good fixes.  Noticeable changes are fixes in davinci,
        and the removal of open-codes in HD-audio ca0132 driver.  The rest are
        all small fixes and/or quirks"
      
      * tag 'sound-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Enable front audio jacks on one HP desktop model
        ALSA: hda/ca0132 - Fix recording from mode id 0x8
        ALSA: hda/ca0132 - setup/cleanup streams
        ALSA: hda - add headset mic detect quirks for two Dell laptops
        ALSA: usb-audio: work around KEF X300A firmware bug
        ASoC: max98090: make REVISION_ID readable
        ASoC: txx9aclc_ac97: Fix kernel crash on probe
        ASoC: max98090: sync regcache on entering STANDBY
        ASoC: blackfin: Fix machine driver Kconfig dependencies
        ASoC: da9055: Fix device registration of PMIC and CODEC devices
        ASoC: fsl-esai: fix ESAI TDM slot setting
        ASoC: fsl: fix pm support of machine drivers
        ASoC: rt5640: Add ACPI ID for Intel Baytrail
        ASoC: davinci-evm: Add pm callbacks to platform driver
        ASoC: davinci-mcasp: Consolidate pm_runtime_get/put() use in the driver
        ASoC: davinci-mcasp: Configure xxTDM, xxFMT and xxFMCT registers synchronously
        ASoC: davinci-mcasp: Harmonize the sub hw_params function names
        ASoC: samsung: Fix trivial typo
        ASoC: samsung: Remove invalid dependencies
        ASoC: wm8993: drop regulator_bulk_free of devm_ allocated data
      04133209
  4. Feb 21, 2014