14 Jul, 2016

9 commits

  • Actually a nice symmetric startup/teardown pair which fits properly into
    the state machine concept. In the long run we should be able to invoke
    the startup callback for the boot CPU via the state machine and get
    rid of the init function which invokes it on the boot CPU.

    Note: This comes actually before the perf hardware callbacks. In the notifier
    model the hardware callbacks have a higher priority than the core
    callback. But that's solely for CPU offline so that hardware migration of
    events happens before the core is notified about the outgoing CPU.

    With the symetric state array model we have the following ordering:

    UP: core -> hardware
    DOWN: hardware -> core

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Siewior
    Cc: Alexander Shishkin
    Cc: Arnaldo Carvalho de Melo
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Linus Torvalds
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Rasmus Villemoes
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.587514098@linutronix.de
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     
  • Install the callbacks via the state machine.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Anna-Maria Gleixner
    Cc: Andrew Lunn
    Cc: Gregory Clement
    Cc: Jason Cooper
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Sebastian Hesselbarth
    Cc: Thomas Gleixner
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.503198935@linutronix.de
    Signed-off-by: Ingo Molnar

    Sebastian Andrzej Siewior
     
  • Install the callbacks via the state machine.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Anna-Maria Gleixner
    Acked-by: Jason Cooper
    Cc: Linus Torvalds
    Cc: Marc Zyngier
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.416260485@linutronix.de
    Signed-off-by: Ingo Molnar

    Sebastian Andrzej Siewior
     
  • Install the callbacks via the state machine.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Acked-by: Jason Cooper
    Cc: Linus Torvalds
    Cc: Marc Zyngier
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.330661455@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Acked-by: Jason Cooper
    Cc: Linus Torvalds
    Cc: Marc Zyngier
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.244546182@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Acked-by: Jason Cooper
    Cc: Linus Torvalds
    Cc: Marc Zyngier
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.163186301@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • More or less straightforward, although this driver sports some very
    interesting SMP setup code. Regarding the callback ordering, this
    deleted comment is interesting:

    ... the GIC needs to be up before the ARM generic timers.

    That comment is half baken as the same requirement is true for perf.

    Signed-off-by: Richard Cochran
    Signed-off-by: Anna-Maria Gleixner
    Reviewed-by: Sebastian Andrzej Siewior
    Acked-by: Jason Cooper
    Cc: Linus Torvalds
    Cc: Marc Zyngier
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153333.069777215@linutronix.de
    Signed-off-by: Ingo Molnar

    Richard Cochran
     
  • Install the callbacks via the state machine and let the core invoke
    the callbacks on the already online CPUs.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Anna-Maria Gleixner
    Acked-by: Andy Lutomirski
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153332.987560239@linutronix.de
    Signed-off-by: Ingo Molnar

    Sebastian Andrzej Siewior
     
  • We switched the hotplug machinery to smpboot threads. Early registration of
    hotplug callbacks, i.e. from do_pre_smp_initcalls(), happens before the
    threads are initialized. Instead of moving the thread init, we simply handle
    it in the hotplug code itself and invoke the function directly.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Anna-Maria Gleixner
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160713153332.896450738@linutronix.de
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

13 Jul, 2016

4 commits


12 Jul, 2016

1 commit

  • The failure check of armada_370_xp_timer_setup() in
    armada_370_xp_timer_common_init() is negated. This leads to an error message
    and exit in case of a successful initialization. Remove the stray '!'.

    Fixes: 12549e27c63c ("clocksource/drivers/time-armada-370-xp: Convert init function to return error")
    Signed-off-by: Anna-Maria Gleixner
    Cc: Daniel Lezcano
    Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1607121731020.1344@hypnos.tec.linutronix.de
    Signed-off-by: Thomas Gleixner

    Anna-Maria Gleixner
     

11 Jul, 2016

3 commits

  • Linus Torvalds
     
  • The well-spotted fallocate undo fix is good in most cases, but not when
    fallocate failed on the very first page. index 0 then passes lend -1
    to shmem_undo_range(), and that has two bad effects: (a) that it will
    undo every fallocation throughout the file, unrestricted by the current
    range; but more importantly (b) it can cause the undo to hang, because
    lend -1 is treated as truncation, which makes it keep on retrying until
    every page has gone, but those already fully instantiated will never go
    away. Big thank you to xfstests generic/269 which demonstrates this.

    Fixes: b9b4bb26af01 ("tmpfs: don't undo fallocate past its last page")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Pull MIPS fix from Ralf Baechle:
    "Another week with just a single 4.7 fix.

    This fixes a possible 'loss' of the huge page bit from pmd on
    permission change"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Fix page table corruption on THP permission changes.

    Linus Torvalds
     

10 Jul, 2016

1 commit

  • Mathieu Desnoyers reported that the STACK_FRAME_NON_STANDARD macro
    wasn't working with the lttng_filter_interpret_bytecode() function in
    the lttng-modules code.

    Usually the relocation created by STACK_FRAME_NON_STANDARD creates a
    reference to a section symbol like this:

    Offset Type Value Addend Name
    000000000000000000 X86_64_64 000000000000000000 +3136 .text

    But in this case it created a reference to a function symbol:

    Offset Type Value Addend Name
    000000000000000000 X86_64_64 0x00000000000003a0 +0 lttng_filter_interpret_bytecode

    To be honest I have no idea what causes gcc to decide to do one over the
    other. But both are valid ELF, so add support for the function symbol.

    Reported-by: Mathieu Desnoyers
    Signed-off-by: Josh Poimboeuf
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: lttng-dev@lists.lttng.org
    Link: http://lkml.kernel.org/r/9cee42843bc6d94e990a152e4e0319cfdf6756ef.1466023450.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     

09 Jul, 2016

8 commits

  • Pull SCSI fixes from James Bottomley:
    "Three fixes. One is the qla24xx MSI regression, one is a theoretical
    problem over blacklist matching, which would bite USB badly if it ever
    triggered and one is a system hang with a particular type of IPR
    device"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    qla2xxx: Fix NULL pointer deref in QLA interrupt
    SCSI: fix new bug in scsi_dev_info_list string matching
    ipr: Clear interrupt on croc/crocodile when running with LSI

    Linus Torvalds
     
  • Pull eCryptfs fixes from Tyler Hicks:
    "Provide a more concise fix for CVE-2016-1583:
    - Additionally fixes linux-stable regressions caused by the
    cherry-picking of the original fix

    Some very minor changes that have queued up:
    - Fix typos in code comments
    - Remove unnecessary check for NULL before destroying kmem_cache"

    * tag 'ecryptfs-4.7-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
    ecryptfs: don't allow mmap when the lower fs doesn't support it
    Revert "ecryptfs: forbid opening files without mmap handler"
    ecryptfs: fix spelling mistakes
    eCryptfs: fix typos in comment
    ecryptfs: drop null test before destroy functions

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:
    "Two Fixes:

    - Intel VT-d fix for a suspend/resume issue, introduced with the
    scalability improvements in this cycle.

    - AMD IOMMU fix for systems that have unity mappings defined. There
    was a race where translation got enabled before the unity mappings
    were in place. This issue was seen on some HP servers"

    * tag 'iommu-fixes-v4.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/amd: Fix unity mapping initialization race
    iommu/vt-d: Fix infinite loop in free_all_cpu_cached_iovas

    Linus Torvalds
     
  • Pull xen bug fixes from David Vrabel:

    - Fix two bugs in the handling of xenbus transactions.

    - Make the xen acpi driver compatible with Xen 4.7.

    * tag 'for-linus-4.7b-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/acpi: allow xen-acpi-processor driver to load on Xen 4.7
    xenbus: simplify xenbus_dev_request_and_reply()
    xenbus: don't bail early from xenbus_dev_request_and_reply()
    xenbus: don't BUG() on user mode induced condition

    Linus Torvalds
     
  • Pull arm64 fixes from Will Deacon:
    "A couple of late fixes here, but one that we've been sitting on for a
    few weeks while the details were worked out. Specifically, we now
    enforce USER_DS on taking exceptions whilst in the kernel, which
    avoids leaking kernel data to userspace through things like perf. The
    other patch is an update to a workaround for a hardware erratum on
    some Cavium SoCs.

    Summary:

    - Enforce USER_DS on exception entry from EL1

    - Apply workaround for Cavium errata #27456 on Thunderx-81xx parts"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: Enable workaround for Cavium erratum 27456 on thunderx-81xx
    arm64: kernel: Save and restore UAO and addr_limit on exception entry

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "Three fixes:

    - A boot crash fix with certain configs
    - a MAINTAINERS entry update
    - Documentation typo fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/Documentation: Fix various typos in Documentation/x86/ files
    x86/amd_nb: Fix boot crash on non-AMD systems
    MAINTAINERS: Update the Calgary IOMMU entry

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Two load-balancing fixes for cgroups-intense workloads"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/fair: Fix calc_cfs_shares() fixed point arithmetics width confusion
    sched/fair: Fix effective_load() to consistently use smoothed load

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Various fixes:

    - 32-bit callgraph bug fix
    - suboptimal event group scheduling bug fix
    - event constraint fixes for Broadwell/Skylake
    - RAPL module name collision fix"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/core: Fix pmu::filter_match for SW-led groups
    x86/perf/intel/rapl: Fix module name collision with powercap intel-rapl
    perf/x86: Fix 32-bit perf user callgraph collection
    perf/x86/intel: Update event constraints when HT is off

    Linus Torvalds
     

08 Jul, 2016

14 commits

  • Pull irq fixes from Ingo Molnar:
    "Two MIPS-GIC irqchip driver fixes to unbreak certain MIPS boards"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/mips-gic: Match IPI IRQ domain by bus token only
    irqchip/mips-gic: Map to VPs using HW VPNum

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "I don't like to toss in last minute patches, but these are all for
    things that are broken, and have bitten people for real. Two of them
    go into stable. Maybe all of them if the compile test problem is a
    pain in the ass also for stable folks.

    Final (hopefully) GPIO fixes for v4.7:

    - Fix an oops on the Asus Eee PC 1201

    - Revert a patch trying to split GPIO parsing and GPIO configuration

    - Revert a too liberal compile testing thing"

    * tag 'gpio-v4.7-5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    Revert "gpio: gpiolib-of: Allow compile testing"
    Revert "gpiolib: Split GPIO flags parsing and GPIO configuration"
    gpio: sch: Fix Oops on module load on Asus Eee PC 1201

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "One nouveau fix, and a few AMD Polaris fixes and some Allwinner fixes.

    I've got some vmware fixes that I might send separate over the
    weekend, they fix some black screens, but I'm still debating them"

    * tag 'drm-fixes-for-v4.7-rc7' of git://people.freedesktop.org/~airlied/linux:
    drm/amd/powerplay: Update CKS on/ CKS off voltage offset calculation.
    drm/amd/powerplay: fix bug that get wrong polaris evv voltage.
    drm/amd/powerplay: incorrectly use of the function return value
    drm/amd/powerplay: fix incorrect voltage table value for tonga
    drm/amd/powerplay: fix incorrect voltage table value for polaris10
    drm/nouveau/disp/sor/gf119: select correct sor when poking training pattern
    gpu: drm: sun4i_drv: add missing of_node_put after calling of_parse_phandle
    drm/sun4i: Send vblank event when the CRTC is disabled
    drm/sun4i: Report proper vblank

    Linus Torvalds
     
  • There are legitimate reasons to disallow mmap on certain files, notably
    in sysfs or procfs. We shouldn't emulate mmap support on file systems
    that don't offer support natively.

    CVE-2016-1583

    Signed-off-by: Jeff Mahoney
    Cc: stable@vger.kernel.org
    [tyhicks: clean up f_op check by using ecryptfs_file_to_lower()]
    Signed-off-by: Tyler Hicks

    Jeff Mahoney
     
  • As of Xen 4.7 PV CPUID doesn't expose either of CPUID[1].ECX[7] and
    CPUID[0x80000007].EDX[7] anymore, causing the driver to fail to load on
    both Intel and AMD systems. Doing any kind of hardware capability
    checks in the driver as a prerequisite was wrong anyway: With the
    hypervisor being in charge, all such checking should be done by it. If
    ACPI data gets uploaded despite some missing capability, the hypervisor
    is free to ignore part or all of that data.

    Ditch the entire check_prereq() function, and do the only valid check
    (xen_initial_domain()) in the caller in its place.

    Signed-off-by: Jan Beulich
    Cc:
    Signed-off-by: David Vrabel

    Jan Beulich
     
  • No need to retain a local copy of the full request message, only the
    type is really needed.

    Signed-off-by: Jan Beulich
    Signed-off-by: David Vrabel

    Jan Beulich
     
  • xenbus_dev_request_and_reply() needs to track whether a transaction is
    open. For XS_TRANSACTION_START messages it calls transaction_start()
    and for XS_TRANSACTION_END messages it calls transaction_end().

    If sending an XS_TRANSACTION_START message fails or responds with an
    an error, the transaction is not open and transaction_end() must be
    called.

    If sending an XS_TRANSACTION_END message fails, the transaction is
    still open, but if an error response is returned the transaction is
    closed.

    Commit 027bd7e89906 ("xen/xenbus: Avoid synchronous wait on XenBus
    stalling shutdown/restart") introduced a regression where failed
    XS_TRANSACTION_START messages were leaving the transaction open. This
    can cause problems with suspend (and migration) as all transactions
    must be closed before suspending.

    It appears that the problematic change was added accidentally, so just
    remove it.

    Signed-off-by: Jan Beulich
    Cc: Konrad Rzeszutek Wilk
    Cc:
    Signed-off-by: David Vrabel

    Jan Beulich
     
  • Pull apparmor fix from James Morris.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    apparmor: fix oops, validate buffer size in apparmor_setprocattr()

    Linus Torvalds
     
  • Pull ACPI fixes from Rafael Wysocki:
    "All of these fix recent regressions in ACPICA, in the ACPI PCI IRQ
    management code and in the ACPI AML debugger.

    Specifics:

    - Fix a lock ordering issue in ACPICA introduced by a recent commit
    that attempted to fix a deadlock in the dynamic table loading code
    which in turn appeared after changes related to the handling of
    module-level AML also made in this cycle (Lv Zheng).

    - Fix a recent regression in the ACPI IRQ management code that may
    cause PCI drivers to be unable to register an IRQ if that IRQ
    happens to be shared with a device on the ISA bus, like the
    parallel port, by reverting one commit entirely and restoring the
    previous behavior in two other places (Sinan Kaya).

    - Fix a recent regression in the ACPI AML debugger introduced by the
    commit that removed incorrect usage of IS_ERR_VALUE() from multiple
    places (Lv Zheng)"

    * tag 'acpi-4.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / debugger: Fix regression introduced by IS_ERR_VALUE() removal
    ACPICA: Namespace: Fix namespace/interpreter lock ordering
    ACPI,PCI,IRQ: separate ISA penalty calculation
    Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()"
    ACPI,PCI,IRQ: factor in PCI possible

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "One fix for a recent cpuidle core change that, against all odds,
    introduced a functional regression on Power systems and the fix for
    the crash during resume from hibernation on x86-64 that has been in
    the works for the last few weeks (it actually was ready last week, but
    I wanted to allow the reporters to test if for some more time).

    Specifics:

    - Fix a recent performance regression on Power systems (powernv and
    pseries) introduced by a core cpuidle commit that decreased the
    precision of the last_residency conversion from nano- to
    microseconds, which should not matter in theory, but turned out to
    play not-so-well with the special "snooze" idle state on Power
    (Shreyas B Prabhu).

    - Fix a crash during resume from hibernation on x86-64 caused by
    possible corruption of the kernel text part of page tables in the
    last phase of image restoration exposed by a security-related
    change during the 4.3 development cycle (Rafael Wysocki)"

    * tag 'pm-4.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpuidle: Fix last_residency division
    x86/power/64: Fix kernel text mapping corruption during image restoration

    Linus Torvalds
     
  • …rnel/git/mripard/linux into drm-fixes

    Allwinner DRM driver fixes for 4.7, take 2

    A new set of fixes for the sun4i driver, mostly related to vblank handling,
    and a minor fix to release a reference on the device tree nodes we're
    parsing in the probe logic.

    * tag 'sunxi-drm-fixes-for-4.7-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
    gpu: drm: sun4i_drv: add missing of_node_put after calling of_parse_phandle
    drm/sun4i: Send vblank event when the CRTC is disabled
    drm/sun4i: Report proper vblank

    Dave Airlie
     
  • When proc_pid_attr_write() was changed to use memdup_user apparmor's
    (interface violating) assumption that the setprocattr buffer was always
    a single page was violated.

    The size test is not strictly speaking needed as proc_pid_attr_write()
    will reject anything larger, but for the sake of robustness we can keep
    it in.

    SMACK and SELinux look safe to me, but somebody else should probably
    have a look just in case.

    Based on original patch from Vegard Nossum
    modified for the case that apparmor provides null termination.

    Fixes: bb646cdb12e75d82258c2f2e7746d5952d3e321a
    Reported-by: Vegard Nossum
    Cc: Al Viro
    Cc: John Johansen
    Cc: Paul Moore
    Cc: Stephen Smalley
    Cc: Eric Paris
    Cc: Casey Schaufler
    Cc: stable@kernel.org
    Signed-off-by: John Johansen
    Reviewed-by: Tyler Hicks
    Signed-off-by: James Morris

    Vegard Nossum
     
  • This reverts commit 2f36db71009304b3f0b95afacd8eba1f9f046b87.

    It fixed a local root exploit but also introduced a dependency on
    the lower file system implementing an mmap operation just to open a file,
    which is a bit of a heavy hammer. The right fix is to have mmap depend
    on the existence of the mmap handler instead.

    Signed-off-by: Jeff Mahoney
    Cc: stable@vger.kernel.org
    Signed-off-by: Tyler Hicks

    Jeff Mahoney
     
  • Pull block IO fixes from Jens Axboe:
    "Three small fixes that have been queued up and tested for this series:

    - A bug fix for xen-blkfront from Bob Liu, fixing an issue with
    incomplete requests during migration.

    - A fix for an ancient issue in retrieving the IO priority of a
    different PID than self, preventing that task from going away while
    we access it. From Omar.

    - A writeback fix from Tahsin, fixing a case where we'd call ihold()
    with a zero ref count inode"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: fix use-after-free in sys_ioprio_get()
    writeback: inode cgroup wb switch should not call ihold()
    xen-blkfront: save uncompleted reqs in blkfront_resume()

    Linus Torvalds