1. 14 Dec, 2016 1 commit
    • Petr Mladek's avatar
      IB/rdmavt: Avoid queuing work into a destroyed cq kthread worker · 6efaf10f
      Petr Mladek authored
      The memory barrier is not enough to protect queuing works into
      a destroyed cq kthread. Just imagine the following situation:
      
      CPU1				CPU2
      
      rvt_cq_enter()
        worker =  cq->rdi->worker;
      
      				rvt_cq_exit()
      				  rdi->worker = NULL;
      				  smp_wmb();
      				  kthread_flush_worker(worker);
      				  kthread_stop(worker->task);
      				  kfree(worker);
      
      				  // nothing queued yet =>
      				  // nothing flushed and
      				  // happily stopped and freed
      
        if (likely(worker)) {
           // true => read before CPU2 acted
           cq->notify = RVT_CQ_NONE;
           cq->triggered++;
           kthread_queue_work(worker, &cq->comptask);
      
        BANG: worker has been flushed/stopped/freed in the meantime.
      
      This patch solves this by protecting the critical sections by
      rdi->n_cqs_lock. It seems that this lock is not much contended
      and looks reasonable for this purpose.
      
      One catch is that rvt_cq_enter() might be called from IRQ context.
      Therefore we must always take the lock with IRQs disabled to avoid
      a possible deadlock.
      Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      6efaf10f
  2. 11 Dec, 2016 25 commits
  3. 15 Nov, 2016 10 commits
  4. 29 Oct, 2016 4 commits
    • Linus Torvalds's avatar
      Linux 4.9-rc3 · a909d3e6
      Linus Torvalds authored
      a909d3e6
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42fd2b50
      Linus Torvalds authored
      Pull x86 bugfix from Thomas Gleixner:
       "A single bugfix for the recent changes related to registering the boot
        cpu when this has not happened before prefill_possible_map().
      
        The main problem with this change got fixed already, but we missed the
        case where the local APIC is not yet mapped, when prefill_possible_map()
        is invoked, so the registration of the boot cpu which has the APIC bit
        set in CPUID will explode.
      
        I should have seen that issue earlier, but all I can do now is feeling
        embarassed"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smpboot: Init apic mapping before usage
      42fd2b50
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.9-rc3' of git://git.infradead.org/linux-ubifs · efa56375
      Linus Torvalds authored
      Pull ubi/ubifs fixes from Richard Weinberger:
       "This contains fixes for issues in both UBI and UBIFS:
      
         - A regression wrt overlayfs, introduced in -rc2.
         - An UBI issue, found by Dan Carpenter's static checker"
      
      * tag 'upstream-4.9-rc3' of git://git.infradead.org/linux-ubifs:
        ubifs: Fix regression in ubifs_readdir()
        ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap()
      efa56375
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2674235f
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "We haven't seen a whole lot of fixes for the first two weeks since the
        merge window, but here is the batch that we have at the moment.
      
        Nothing sticks out as particularly bad or scary, it's mostly a handful
        of smaller fixes to several platforms. The Uniphier reset controller
        changes could probably have been delayed to 4.10, but they're not
        scary and just plumbing up driver changes that went in during the
        merge window.
      
        We're also adding another maintainer to Marvell Berlin platforms, to
        help out when Sebastian is too busy. Yay teamwork!"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: imx: mach-imx6q: Fix the PHY ID mask for AR8031
        ARM: dts: vf610: fix IRQ flag of global timer
        ARM: imx: gpc: Fix the imx_gpc_genpd_init() error path
        ARM: imx: gpc: Initialize all power domains
        arm64: dts: Updated NAND DT properties for NS2 SVK
        arm64: dts: uniphier: change MIO node to SD control node
        ARM: dts: uniphier: change MIO node to SD control node
        reset: uniphier: rename MIO reset to SD reset for Pro5, PXs2, LD20 SoCs
        arm64: uniphier: select ARCH_HAS_RESET_CONTROLLER
        ARM: uniphier: select ARCH_HAS_RESET_CONTROLLER
        arm64: dts: Add timer erratum property for LS2080A and LS1043A
        arm64: dts: rockchip: remove the abuse of keep-power-in-suspend
        ARM: multi_v7_defconfig: Enable Intel e1000e driver
        MAINTAINERS: add myself as Marvell berlin SoC maintainer
        bus: qcom-ebi2: depend on ARCH_QCOM or COMPILE_TEST
        ARM: dts: fix the SD card on the Snowball
        arm64: dts: rockchip: remove always-on and boot-on from vcc_sd
        arm64: dts: marvell: fix clocksource for CP110 master SPI0
        ARM: mvebu: Select corediv clk for all mvebu v7 SoC
      2674235f