13 Mar, 2016

1 commit


11 Mar, 2016

1 commit

  • Commit 931ef163309e moved the smpboot thread park/unpark invocation to the
    state machine. The move of the unpark invocation was premature as it depends
    on work in progress patches.

    As a result cpu down can fail, because rcu synchronization in takedown_cpu()
    eventually requires a functional softirq thread. I never encountered the
    problem in testing, but 0day testing managed to provide a reliable reproducer.

    Remove the smpboot_threads_park() call from the state machine for now and put
    it back into the original place after the rcu synchronization.

    I'm embarrassed as I knew about the dependency and still managed to get it
    wrong. Hotplug induced brain melt seems to be the only sensible explanation
    for that.

    Fixes: 931ef163309e "cpu/hotplug: Unpark smpboot threads from the state machine"
    Reported-by: Fengguang Wu
    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra

    Thomas Gleixner
     

06 Mar, 2016

1 commit

  • The check for the AP range in cpuhp_is_ap_state() is redundant after commit
    8df3e07e7f21 "cpu/hotplug: Let upcoming cpu bring itself fully up" because all
    states above CPUHP_BRINGUP_CPU are invoked on the hotplugged cpu. Remove it.

    Reported-by: Richard Cochran
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

03 Mar, 2016

1 commit

  • Paul noticed that the conversion of the death reporting introduced a race
    where the outgoing cpu might be delayed after waking the controll processor,
    so it might not be able to call rcu_report_dead() before being physically
    removed, leading to RCU stalls.

    We cant call complete after rcu_report_dead(), so instead of going back to
    busy polling, simply issue a function call to do the completion.

    Fixes: 27d50c7eeb0f "rcu: Make CPU_DYING_IDLE an explicit call"
    Reported-by: Paul E. McKenney
    Link: http://lkml.kernel.org/r/20160302201127.GA23440@linux.vnet.ibm.com
    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra

    Thomas Gleixner
     

02 Mar, 2016

19 commits

  • Make the RCU CPU_DYING_IDLE callback an explicit function call, so it gets
    invoked at the proper place.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.870167933@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Kill the busy spinning on the control side and just wait for the hotplugged
    cpu to tell that it reached the dead state.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.776157858@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Let the upcoming cpu kick the hotplug thread and let itself complete the
    bringup. That way the controll side can just wait for the completion or later
    when we made the hotplug machinery async not care at all.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.697655464@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Let the non boot cpus call into idle with the corresponding hotplug state, so
    the hotplug core can handle the further bringup. That's a first step to
    convert the boot side of the hotplugged cpus to do all the synchronization
    with the other side through the state machine. For now it'll only start the
    hotplug thread and kick the full bringup of the cpu.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.614102639@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Let the hotplugged cpu invoke the setup/teardown callbacks
    (CPU_ONLINE/CPU_DOWN_PREPARE) itself.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.536364371@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • In order to let the hotplugged cpu take care of the setup/teardown, we need a
    seperate hotplug thread.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.454541272@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • We need that for running callbacks on the AP and the BP.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.374946234@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Handle the smpboot threads in the state machine.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.295777684@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Move the scheduler cpu online notifier part to the hotplug core. This is
    anyway the highest priority callback and we need that functionality right now
    for the next changes.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.200791046@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Implement function which allow to setup/remove hotplug state callbacks.

    The default behaviour for setup is to call the startup function for this state
    for (or on) all cpus which have a hotplug state >= the installed state.

    The default behaviour for removal is to call the teardown function for this
    state for (or on) all cpus which have a hotplug state >= the installed state.

    This includes rollback to the previous state in case of failure.

    A special state is CPUHP_ONLINE_DYN. Its for dynamically registering a hotplug
    callback pair. This is for drivers which have no dependencies to avoid that we
    need to allocate CPUHP states for each of them

    For both setup and remove helper functions are provided, which prevent the
    core to issue the callbacks. This simplifies the conversion of existing
    hotplug notifiers.

    [ Dynamic registering implemented by Sebastian Siewior ]

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.103464877@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Make it possible to write a target state to the per cpu state file, so we can
    switch between states.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.022814799@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Add a sysfs interface so we can actually see in which state the cpus are in.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.942257522@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • We want to be able to bringup/teardown the cpu to a particular state. Add a
    target argument to _cpu_up/down.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.862113133@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Move the functions which need to run on the hotplugged processor into
    a state machine array and let the code iterate through these functions.

    In a later state, this will grow synchronization points between the
    control processor and the hotplugged processor, so we can move the
    various architecture implementations of the synchronizations to the
    core.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.770651526@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Move the split out steps into a callback array and let the cpu_up/down
    code iterate through the array functions. For now most of the
    callbacks are asymmetric to resemble the current hotplug maze.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.671816690@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • We want to trace the hotplug machinery. Add tracepoints to track the
    invocation of callbacks and their result.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.593563875@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Split cpu_down in separate functions in preparation for state machine
    conversion.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.511796562@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Split out into separate functions, so we can convert it to a state machine.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.429389195@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • There are only a few callbacks which really care about FROZEN
    vs. !FROZEN. No need to have extra states for this.

    Publish the frozen state in an extra variable which is updated under
    the hotplug lock and let the users interested deal with it w/o
    imposing that extra state checks on everyone.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182340.334912357@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

29 Feb, 2016

1 commit


28 Feb, 2016

16 commits

  • Pull perf fixes from Thomas Gleixner:
    "A rather largish series of 12 patches addressing a maze of race
    conditions in the perf core code from Peter Zijlstra"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf: Robustify task_function_call()
    perf: Fix scaling vs. perf_install_in_context()
    perf: Fix scaling vs. perf_event_enable()
    perf: Fix scaling vs. perf_event_enable_on_exec()
    perf: Fix ctx time tracking by introducing EVENT_TIME
    perf: Cure event->pending_disable race
    perf: Fix race between event install and jump_labels
    perf: Fix cloning
    perf: Only update context time when active
    perf: Allow perf_release() with !event->ctx
    perf: Do not double free
    perf: Close install vs. exit race

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "This update contains:

    - Hopefully the last ASM CLAC fixups

    - A fix for the Quark family related to the IMR lock which makes
    kexec work again

    - A off-by-one fix in the MPX code. Ironic, isn't it?

    - A fix for X86_PAE which addresses once more an unsigned long vs
    phys_addr_t hickup"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mpx: Fix off-by-one comparison with nr_registers
    x86/mm: Fix slow_virt_to_phys() for X86_PAE again
    x86/entry/compat: Add missing CLAC to entry_INT80_32
    x86/entry/32: Add an ASM_CLAC to entry_SYSENTER_32
    x86/platform/intel/quark: Change the kernel's IMR lock bit to false

    Linus Torvalds
     
  • Pull scheduler fixlet from Thomas Gleixner:
    "A trivial printk typo fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/deadline: Fix trivial typo in printk() message

    Linus Torvalds
     
  • Pull irq fixes from Thomas Gleixner:
    "Four small fixes for irqchip drivers:

    - Add missing low level irq handler initialization on mxs, so
    interrupts can acutally be delivered

    - Add a missing barrier to the GIC driver

    - Two fixes for the GIC-V3-ITS driver, addressing a double EOI write
    and a cache flush beyond the actual region"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/gic-v3: Add missing barrier to 32bit version of gic_read_iar()
    irqchip/mxs: Add missing set_handle_irq()
    irqchip/gicv3-its: Avoid cache flush beyond ITS_BASERn memory size
    irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1

    Linus Torvalds
     
  • Pull staging/android fix from Greg KH:
    "Here is one patch, for the android binder driver, to resolve a
    reported problem. Turns out it has been around for a while (since
    3.15), so it is good to finally get it resolved.

    It has been in linux-next for a while with no reported issues"

    * tag 'staging-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    drivers: android: correct the size of struct binder_uintptr_t for BC_DEAD_BINDER_DONE

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a few USB fixes for 4.5-rc6

    They fix a reported bug for some USB 3 devices by reverting the recent
    patch, a MAINTAINERS change for some drivers, some new device ids, and
    of course, the usual bunch of USB gadget driver fixes.

    All have been in linux-next for a while with no reported issues"

    * tag 'usb-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    MAINTAINERS: drop OMAP USB and MUSB maintainership
    usb: musb: fix DMA for host mode
    usb: phy: msm: Trigger USB state detection work in DRD mode
    usb: gadget: net2280: fix endpoint max packet for super speed connections
    usb: gadget: gadgetfs: unregister gadget only if it got successfully registered
    usb: gadget: remove driver from pending list on probe error
    Revert "usb: hub: do not clear BOS field during reset device"
    usb: chipidea: fix return value check in ci_hdrc_pci_probe()
    usb: chipidea: error on overflow for port_test_write
    USB: option: add "4G LTE usb-modem U901"
    USB: cp210x: add IDs for GE B650V3 and B850V3 boards
    USB: option: add support for SIM7100E
    usb: musb: Fix DMA desired mode for Mentor DMA engine
    usb: gadget: fsl_qe_udc: fix IS_ERR_VALUE usage
    usb: dwc2: USB_DWC2 should depend on HAS_DMA
    usb: dwc2: host: fix the data toggle error in full speed descriptor dma
    usb: dwc2: host: fix logical omissions in dwc2_process_non_isoc_desc
    usb: dwc3: Fix assignment of EP transfer resources
    usb: dwc2: Add extra delay when forcing dr_mode

    Linus Torvalds
     
  • Pull vfs fixes from Al Viro.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    do_last(): ELOOP failure exit should be done after leaving RCU mode
    should_follow_link(): validate ->d_seq after having decided to follow
    namei: ->d_inode of a pinned dentry is stable only for positives
    do_last(): don't let a bogus return value from ->open() et.al. to confuse us
    fs: return -EOPNOTSUPP if clone is not supported
    hpfs: don't truncate the file when delete fails

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "We didn't have a batch last week, so this one is slightly larger.

    None of them are scary though, a handful of fixes for small DT pieces,
    replacing properties with newer conventions.

    Highlights:
    - N900 fix for setting system revision
    - onenand init fix to avoid filesystem corruption
    - Clock fix for audio on Beaglebone-x15
    - Fixes on shmobile to deal with CONFIG_DEBUG_RODATA (default y in 4.6)

    + misc smaller stuff"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    MAINTAINERS: Extend info, add wiki and ml for meson arch
    MAINTAINERS: alpine: add a new maintainer and update the entry
    ARM: at91/dt: fix typo in sama5d2 pinmux descriptions
    ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption
    Revert "regulator: tps65217: remove tps65217.dtsi file"
    ARM: shmobile: Remove shmobile_boot_arg
    ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss
    ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code
    ARM: shmobile: Move shmobile_scu_base from .text to .bss
    ARM: OMAP2+: Fix omap_device for module reload on PM runtime forbid
    ARM: OMAP2+: Improve omap_device error for driver writers
    ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 for audio clocks
    ARM: dts: am335x/am57xx: replace gpio-key,wakeup with wakeup-source property
    ARM: OMAP2+: Set system_rev from ATAGS for n900
    ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl
    ARM: dts: kirkwood: use unique machine name for ds112
    ARM: dts: imx6: remove bogus interrupt-parent from CAAM node

    Linus Torvalds
     
  • ... or we risk seeing a bogus value of d_is_symlink() there.

    Cc: stable@vger.kernel.org # v4.2+
    Signed-off-by: Al Viro

    Al Viro
     
  • ... otherwise d_is_symlink() above might have nothing to do with
    the inode value we've got.

    Cc: stable@vger.kernel.org # v4.2+
    Signed-off-by: Al Viro

    Al Viro
     
  • both do_last() and walk_component() risk picking a NULL inode out
    of dentry about to become positive, *then* checking its flags and
    seeing that it's not negative anymore and using (already stale by
    then) value they'd fetched earlier. Usually ends up oopsing soon
    after that...

    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Al Viro

    Al Viro
     
  • ... into returning a positive to path_openat(), which would interpret that
    as "symlink had been encountered" and proceed to corrupt memory, etc.
    It can only happen due to a bug in some ->open() instance or in some LSM
    hook, etc., so we report any such event *and* make sure it doesn't trick
    us into further unpleasantness.

    Cc: stable@vger.kernel.org # v3.6+, at least
    Signed-off-by: Al Viro

    Al Viro
     
  • -EBADF is a rather confusing error if an operations is not supported,
    and nfsd gets rather upset about it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • The delete opration can allocate additional space on the HPFS filesystem
    due to btree split. The HPFS driver checks in advance if there is
    available space, so that it won't corrupt the btree if we run out of space
    during splitting.

    If there is not enough available space, the HPFS driver attempted to
    truncate the file, but this results in a deadlock since the commit
    7dd29d8d865efdb00c0542a5d2c87af8c52ea6c7 ("HPFS: Introduce a global mutex
    and lock it on every callback from VFS").

    This patch removes the code that tries to truncate the file and -ENOSPC is
    returned instead. If the user hits -ENOSPC on delete, he should try to
    delete other files (that are stored in a leaf btree node), so that the
    delete operation will make some space for deleting the file stored in
    non-leaf btree node.

    Reported-by: Al Viro
    Signed-off-by: Mikulas Patocka
    Cc: stable@vger.kernel.org # 2.6.39+
    Signed-off-by: Al Viro

    Mikulas Patocka
     
  • Merge fixes from Andrew Morton:
    "10 fixes"

    * emailed patches from Andrew Morton :
    dax: move writeback calls into the filesystems
    dax: give DAX clearing code correct bdev
    ext4: online defrag not supported with DAX
    ext2, ext4: only set S_DAX for regular inodes
    block: disable block device DAX by default
    ocfs2: unlock inode if deleting inode from orphan fails
    mm: ASLR: use get_random_long()
    drivers: char: random: add get_random_long()
    mm: numa: quickly fail allocations for NUMA balancing on full nodes
    mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED

    Linus Torvalds
     
  • Pull ext2/4 DAX fix from Ted Ts'o:
    "This fixes a file system corruption bug with DAX"

    * tag 'tags/ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext2, ext4: fix issue with missing journal entry in ext4_dax_mkwrite()

    Linus Torvalds