10 Feb, 2018

27 commits


29 Jan, 2018

7 commits

  • Linus Torvalds
     
  • Pull x86 retpoline fixlet from Thomas Gleixner:
    "Remove the ESP/RSP thunks for retpoline as they cannot ever work.

    Get rid of them before they show up in a release"

    * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/retpoline: Remove the esp/rsp thunk

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "A set of small fixes for 4.15:

    - Fix vmapped stack synchronization on systems with 4-level paging
    and a large amount of memory caused by a missing 5-level folding
    which made the pgd synchronization logic to fail and causing double
    faults.

    - Add a missing sanity check in the vmalloc_fault() logic on 5-level
    paging systems.

    - Bring back protection against accessing a freed initrd in the
    microcode loader which was lost by a wrong merge conflict
    resolution.

    - Extend the Broadwell micro code loading sanity check.

    - Add a missing ENDPROC annotation in ftrace assembly code which
    makes ORC unhappy.

    - Prevent loading the AMD power module on !AMD platforms. The load
    itself is uncritical, but an unload attempt results in a kernel
    crash.

    - Update Peter Anvins role in the MAINTAINERS file"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ftrace: Add one more ENDPROC annotation
    x86: Mark hpa as a "Designated Reviewer" for the time being
    x86/mm/64: Tighten up vmalloc_fault() sanity checks on 5-level kernels
    x86/mm/64: Fix vmapped stack syncing on very-large-memory 4-level systems
    x86/microcode: Fix again accessing initrd after having been freed
    x86/microcode/intel: Extend BDW late-loading further with LLC size check
    perf/x86/amd/power: Do not load AMD power module on !AMD platforms

    Linus Torvalds
     
  • Pull timer fix from Thomas Gleixner:
    "A single fix for a ~10 years old problem which causes high resolution
    timers to stop after a CPU unplug/plug cycle due to a stale flag in
    the per CPU hrtimer base struct.

    Paul McKenney was hunting this for about a year, but the heisenbug
    nature made it resistant against debug attempts for quite some time"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    hrtimer: Reset hrtimer cpu base proper on CPU hotplug

    Linus Torvalds
     
  • Pull scheduler fix from Thomas Gleixner:
    "A single bug fix to prevent a subtle deadlock in the scheduler core
    code vs cpu hotplug"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/core: Fix cpu.max vs. cpuhotplug deadlock

    Linus Torvalds
     
  • Pull perf fixes from Thomas Gleixner:
    "Four patches which all address lock inversions and deadlocks in the
    perf core code and the Intel debug store"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Fix perf,x86,cpuhp deadlock
    perf/core: Fix ctx::mutex deadlock
    perf/core: Fix another perf,trace,cpuhp lock inversion
    perf/core: Fix lock inversion between perf,trace,cpuhp

    Linus Torvalds
     
  • Pull locking fixes from Thomas Gleixner:
    "Two final locking fixes for 4.15:

    - Repair the OWNER_DIED logic in the futex code which got wreckaged
    with the recent fix for a subtle race condition.

    - Prevent the hard lockup detector from triggering when dumping all
    held locks in the system"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/lockdep: Avoid triggering hardlockup from debug_show_all_locks()
    futex: Fix OWNER_DEAD fixup

    Linus Torvalds
     

28 Jan, 2018

1 commit

  • When ORC support was added for the ftrace_64.S code, an ENDPROC
    for function_hook() was missed. This results in the following warning:

    arch/x86/kernel/ftrace_64.o: warning: objtool: .entry.text+0x0: unreachable instruction

    Fixes: e2ac83d74a4d ("x86/ftrace: Fix ORC unwinding from ftrace handlers")
    Reported-by: Steven Rostedt
    Reported-by: Borislav Petkov
    Signed-off-by: Josh Poimboeuf
    Signed-off-by: Thomas Gleixner
    Acked-by: Ingo Molnar
    Cc: Linus Torvalds
    Link: https://lkml.kernel.org/r/20180128022150.dqierscqmt3uwwsr@treble

    Josh Poimboeuf
     

27 Jan, 2018

5 commits

  • The hrtimer interrupt code contains a hang detection and mitigation
    mechanism, which prevents that a long delayed hrtimer interrupt causes a
    continous retriggering of interrupts which prevent the system from making
    progress. If a hang is detected then the timer hardware is programmed with
    a certain delay into the future and a flag is set in the hrtimer cpu base
    which prevents newly enqueued timers from reprogramming the timer hardware
    prior to the chosen delay. The subsequent hrtimer interrupt after the delay
    clears the flag and resumes normal operation.

    If such a hang happens in the last hrtimer interrupt before a CPU is
    unplugged then the hang_detected flag is set and stays that way when the
    CPU is plugged in again. At that point the timer hardware is not armed and
    it cannot be armed because the hang_detected flag is still active, so
    nothing clears that flag. As a consequence the CPU does not receive hrtimer
    interrupts and no timers expire on that CPU which results in RCU stalls and
    other malfunctions.

    Clear the flag along with some other less critical members of the hrtimer
    cpu base to ensure starting from a clean state when a CPU is plugged in.

    Thanks to Paul, Sebastian and Anna-Maria for their help to get down to the
    root cause of that hard to reproduce heisenbug. Once understood it's
    trivial and certainly justifies a brown paperbag.

    Fixes: 41d2e4949377 ("hrtimer: Tune hrtimer_interrupt hang logic")
    Reported-by: Paul E. McKenney
    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Sebastian Sewior
    Cc: Anna-Maria Gleixner
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/alpine.DEB.2.20.1801261447590.2067@nanos

    Thomas Gleixner
     
  • Due to some unfortunate events, I have not been directly involved in
    the x86 kernel patch flow for a while now. I have also not been able
    to ramp back up by now like I had hoped to, and after reviewing what I
    will need to work on both internally at Intel and elsewhere in the near
    term, it is clear that I am not going to be able to ramp back up until
    late 2018 at the very earliest.

    It is not acceptable to not recognize that this load is currently
    taken by Ingo and Thomas without my direct participation, so I mark
    myself as R: (designated reviewer) rather than M: (maintainer) until
    further notice. This is in fact recognizing the de facto situation
    for the past few years.

    I have obviously no intention of going away, and I will do everything
    within my power to improve Linux on x86 and x86 for Linux. This,
    however, puts credit where it is due and reflects a change of focus.

    This patch also removes stale entries for portions of the x86
    architecture which have not been maintained separately from arch/x86
    for a long time. If there is a reason to re-introduce them then that
    can happen later.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Thomas Gleixner
    Cc: Bruce Schlobohm
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20180125195934.5253-1-hpa@zytor.com
    Signed-off-by: Ingo Molnar

    H. Peter Anvin
     
  • …ux/kernel/git/palmer/riscv-linux

    Pull RISC-V update from Palmer Dabbelt:
    "RISC-V: We have a new mailing list and git repo!

    Sorry to send something essentially as late as possible (Friday after
    an rc9), but we managed to get a mailing list for the RISC-V Linux
    port. We've been using patches@groups.riscv.org for a while, but that
    list has some problems (it's Google Groups and it's shared over all
    RISC-V software projects). The new infaread.org list is much better.
    We just got it on Wednesday but I used it a bit on Thursday to shake
    out all the configuration problems and it appears to be in working
    order.

    When I updated the mailing list I noticed that the MAINTAINERS file
    was pointing to our github repo, but now that we have a kernel.org
    repo I'd like to point to that instead so I changed that as well.
    We'll be centralizing all RISC-V Linux related development here as
    that seems to be the saner way to go about it.

    I can understand if it's too late to get this into 4.15, but given
    that it's not a code change I was hoping it'd still be OK. It would be
    nice to have the new mailing list and git repo in the release tarballs
    so when people start to find bugs they'll get to the right place"

    * tag 'riscv-for-linus-4.15-maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux:
    Update the RISC-V MAINTAINERS file

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) The per-network-namespace loopback device, and thus its namespace,
    can have its teardown deferred for a long time if a kernel created
    TCP socket closes and the namespace is exiting meanwhile. The kernel
    keeps trying to finish the close sequence until it times out (which
    takes quite some time).

    Fix this by forcing the socket closed in this situation, from Dan
    Streetman.

    2) Fix regression where we're trying to invoke the update_pmtu method
    on route types (in this case metadata tunnel routes) that don't
    implement the dst_ops method. Fix from Nicolas Dichtel.

    3) Fix long standing memory corruption issues in r8169 driver by
    performing the chip statistics DMA programming more correctly. From
    Francois Romieu.

    4) Handle local broadcast sends over VRF routes properly, from David
    Ahern.

    5) Don't refire the DCCP CCID2 timer endlessly, otherwise the socket
    can never be released. From Alexey Kodanev.

    6) Set poll flags properly in VSOCK protocol layer, from Stefan
    Hajnoczi.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    VSOCK: set POLLOUT | POLLWRNORM for TCP_CLOSING
    dccp: don't restart ccid2_hc_tx_rto_expire() if sk in closed state
    net: vrf: Add support for sends to local broadcast address
    r8169: fix memory corruption on retrieval of hardware statistics.
    net: don't call update_pmtu unconditionally
    net: tcp: close sock if net namespace is exiting

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "A fairly urgent nouveau regression fix for broken irqs across
    suspend/resume came in. This was broken before but a patch in 4.15 has
    made it much more obviously broken and now s/r fails a lot more often.

    The fix removes freeing the irq across s/r which never should have
    been done anyways.

    Also two vc4 fixes for a NULL deference and some misrendering /
    flickering on screen"

    * tag 'drm-fixes-for-v4.15-rc10-2' of git://people.freedesktop.org/~airlied/linux:
    drm/nouveau: Move irq setup/teardown to pci ctor/dtor
    drm/vc4: Fix NULL pointer dereference in vc4_save_hang_state()
    drm/vc4: Flush the caches before the bin jobs, as well.

    Linus Torvalds