27 Sep, 2017

1 commit


25 Sep, 2017

3 commits

  • Pull DeviceTree fixes from Rob Herring:

    - fix build for !OF providing empty of_find_device_by_node

    - fix Abracon vendor prefix

    - sync dtx_diff include paths (again)

    - a stm32h7 clock binding doc fix

    * tag 'devicetree-fixes-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dt-bindings: clk: stm32h7: fix clock-cell size
    scripts/dtc: dtx_diff - 2nd update of include dts paths to match build
    dt-bindings: fix vendor prefix for Abracon
    of: provide inline helper for of_find_device_by_node

    Linus Torvalds
     
  • Pull irq fixes from Ingo Molnar:
    "Three irqchip driver fixes, and an affinity mask helper function bug
    fix affecting x86"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "genirq: Restrict effective affinity to interrupts actually using it"
    irqchip.mips-gic: Fix shared interrupt mask writes
    irqchip/gic-v4: Fix building with ancient gcc
    irqchip/gic-v3: Iterate over possible CPUs by for_each_possible_cpu()

    Linus Torvalds
     
  • Pull address-limit checking fixes from Ingo Molnar:
    "This fixes a number of bugs in the address-limit (USER_DS) checks that
    got introduced in the merge window, (mostly) affecting the ARM and
    ARM64 platforms"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    arm64/syscalls: Move address limit check in loop
    arm/syscalls: Optimize address limit check
    Revert "arm/syscalls: Check address limit on user-mode return"
    syscalls: Use CHECK_DATA_CORRUPTION for addr_limit_user_check

    Linus Torvalds
     

23 Sep, 2017

6 commits

  • Pull networking fixes from David Miller:

    1) Fix NAPI poll list corruption in enic driver, from Christian
    Lamparter.

    2) Fix route use after free, from Eric Dumazet.

    3) Fix regression in reuseaddr handling, from Josef Bacik.

    4) Assert the size of control messages in compat handling since we copy
    it in from userspace twice. From Meng Xu.

    5) SMC layer bug fixes (missing RCU locking, bad refcounting, etc.)
    from Ursula Braun.

    6) Fix races in AF_PACKET fanout handling, from Willem de Bruijn.

    7) Don't use ARRAY_SIZE on spinlock array which might have zero
    entries, from Geert Uytterhoeven.

    8) Fix miscomputation of checksum in ipv6 udp code, from Subash Abhinov
    Kasiviswanathan.

    9) Push the ipv6 header properly in ipv6 GRE tunnel driver, from Xin
    Long.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (75 commits)
    inet: fix improper empty comparison
    net: use inet6_rcv_saddr to compare sockets
    net: set tb->fast_sk_family
    net: orphan frags on stand-alone ptype in dev_queue_xmit_nit
    MAINTAINERS: update git tree locations for ieee802154 subsystem
    net: prevent dst uses after free
    net: phy: Fix truncation of large IRQ numbers in phy_attached_print()
    net/smc: no close wait in case of process shut down
    net/smc: introduce a delay
    net/smc: terminate link group if out-of-sync is received
    net/smc: longer delay for client link group removal
    net/smc: adapt send request completion notification
    net/smc: adjust net_device refcount
    net/smc: take RCU read lock for routing cache lookup
    net/smc: add receive timeout check
    net/smc: add missing dev_put
    net: stmmac: Cocci spatch "of_table"
    lan78xx: Use default values loaded from EEPROM/OTP after reset
    lan78xx: Allow EEPROM write for less than MAX_EEPROM_SIZE
    lan78xx: Fix for eeprom read/write when device auto suspend
    ...

    Linus Torvalds
     
  • Pull ACPI fixes from Rafael Wysocki:
    "These fix the initialization of resources in the ACPI WDAT watchdog
    driver, a recent regression in the ACPI device properties handling, a
    recent change in behavior causing the ACPI_HANDLE() macro to only work
    for GPL code and create a MAINTAINERS entry for ACPI PMIC drivers in
    order to specify the official reviewers for that code.

    Specifics:

    - Fix the initialization of resources in the ACPI WDAT watchdog
    driver that uses unititialized memory which causes compiler
    warnings to be triggered (Arnd Bergmann).

    - Fix a recent regression in the ACPI device properties handling that
    causes some device properties data to be skipped during enumeration
    (Sakari Ailus).

    - Fix a recent change in behavior that caused the ACPI_HANDLE() macro
    to stop working for non-GPL code which is a problem for the NVidia
    binary graphics driver, for example (John Hubbard).

    - Add a MAINTAINERS entry for the ACPI PMIC drivers to specify the
    official reviewers for that code (Rafael Wysocki)"

    * tag 'acpi-4.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: properties: Return _DSD hierarchical extension (data) sub-nodes correctly
    ACPI / bus: Make ACPI_HANDLE() work for non-GPL code again
    ACPI / watchdog: properly initialize resources
    ACPI / PMIC: Add code reviewers to MAINTAINERS

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These fix a cpufreq regression introduced by recent changes related to
    the generic DT driver, an initialization time memory leak in cpuidle
    on ARM, a PM core bug that may cause system suspend/resume to fail on
    some systems, a request type validation issue in the PM QoS framework
    and two documentation-related issues.

    Specifics:

    - Fix a regression in cpufreq on systems using DT as the source of
    CPU configuration information where two different code paths
    attempt to create the cpufreq-dt device object (there can be only
    one) and fix up the "compatible" matching for some TI platforms on
    top of that (Viresh Kumar, Dave Gerlach).

    - Fix an initialization time memory leak in cpuidle on ARM which
    occurs if the cpuidle driver initialization fails (Stefan Wahren).

    - Fix a PM core function that checks whether or not there are any
    system suspend/resume callbacks for a device, but forgets to check
    legacy callbacks which then may be skipped incorrectly and the
    system may crash and/or the device may become unusable after a
    suspend-resume cycle (Rafael Wysocki).

    - Fix request type validation for latency tolerance PM QoS requests
    which may lead to unexpected behavior (Jan Schönherr).

    - Fix a broken link to PM documentation from a header file and a typo
    in a PM document (Geert Uytterhoeven, Rafael Wysocki)"

    * tag 'pm-4.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: ti-cpufreq: Support additional am43xx platforms
    ARM: cpuidle: Avoid memleak if init fail
    cpufreq: dt-platdev: Add some missing platforms to the blacklist
    PM: core: Fix device_pm_check_callbacks()
    PM: docs: Drop an excess character from devices.rst
    PM / QoS: Use the correct variable to check the QoS request type
    driver core: Fix link to device power management documentation

    Linus Torvalds
     
  • Pull input fixes from Dmitry Torokhov:

    - fixes for two long standing issues (lock up and a crash) in force
    feedback handling in uinput driver

    - tweak to firmware update timing in Elan I2C touchpad driver.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: elan_i2c - extend Flash-Write delay
    Input: uinput - avoid crash when sending FF request to device going away
    Input: uinput - avoid FF flush when destroying device

    Linus Torvalds
     
  • Pull seccomp updates from Kees Cook:
    "Major additions:

    - sysctl and seccomp operation to discover available actions
    (tyhicks)

    - new per-filter configurable logging infrastructure and sysctl
    (tyhicks)

    - SECCOMP_RET_LOG to log allowed syscalls (tyhicks)

    - SECCOMP_RET_KILL_PROCESS as the new strictest possible action

    - self-tests for new behaviors"

    [ This is the seccomp part of the security pull request during the merge
    window that was nixed due to unrelated problems - Linus ]

    * tag 'seccomp-v4.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    samples: Unrename SECCOMP_RET_KILL
    selftests/seccomp: Test thread vs process killing
    seccomp: Implement SECCOMP_RET_KILL_PROCESS action
    seccomp: Introduce SECCOMP_RET_KILL_PROCESS
    seccomp: Rename SECCOMP_RET_KILL to SECCOMP_RET_KILL_THREAD
    seccomp: Action to log before allowing
    seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW
    seccomp: Selftest for detection of filter flag support
    seccomp: Sysctl to configure actions that are allowed to be logged
    seccomp: Operation for checking if an action is available
    seccomp: Sysctl to display available actions
    seccomp: Provide matching filter for introspection
    selftests/seccomp: Refactor RET_ERRNO tests
    selftests/seccomp: Add simple seccomp overhead benchmark
    selftests/seccomp: Add tests for basic ptrace actions

    Linus Torvalds
     
  • Pull xen fixes from Juergen Gross:
    "A fix for a missing __init annotation and two cleanup patches"

    * tag 'for-linus-4.14b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen, arm64: drop dummy lookup_address()
    xen: don't compile pv-specific parts if XEN_PV isn't configured
    xen: x86: mark xen_find_pt_base as __init

    Linus Torvalds
     

22 Sep, 2017

3 commits

  • In linux-4.13, Wei worked hard to convert dst to a traditional
    refcounted model, removing GC.

    We now want to make sure a dst refcount can not transition from 0 back
    to 1.

    The problem here is that input path attached a not refcounted dst to an
    skb. Then later, because packet is forwarded and hits skb_dst_force()
    before exiting RCU section, we might try to take a refcount on one dst
    that is about to be freed, if another cpu saw 1 -> 0 transition in
    dst_release() and queued the dst for freeing after one RCU grace period.

    Lets unify skb_dst_force() and skb_dst_force_safe(), since we should
    always perform the complete check against dst refcount, and not assume
    it is not zero.

    Bugzilla : https://bugzilla.kernel.org/show_bug.cgi?id=197005

    [ 989.919496] skb_dst_force+0x32/0x34
    [ 989.919498] __dev_queue_xmit+0x1ad/0x482
    [ 989.919501] ? eth_header+0x28/0xc6
    [ 989.919502] dev_queue_xmit+0xb/0xd
    [ 989.919504] neigh_connected_output+0x9b/0xb4
    [ 989.919507] ip_finish_output2+0x234/0x294
    [ 989.919509] ? ipt_do_table+0x369/0x388
    [ 989.919510] ip_finish_output+0x12c/0x13f
    [ 989.919512] ip_output+0x53/0x87
    [ 989.919513] ip_forward_finish+0x53/0x5a
    [ 989.919515] ip_forward+0x2cb/0x3e6
    [ 989.919516] ? pskb_trim_rcsum.part.9+0x4b/0x4b
    [ 989.919518] ip_rcv_finish+0x2e2/0x321
    [ 989.919519] ip_rcv+0x26f/0x2eb
    [ 989.919522] ? vlan_do_receive+0x4f/0x289
    [ 989.919523] __netif_receive_skb_core+0x467/0x50b
    [ 989.919526] ? tcp_gro_receive+0x239/0x239
    [ 989.919529] ? inet_gro_receive+0x226/0x238
    [ 989.919530] __netif_receive_skb+0x4d/0x5f
    [ 989.919532] netif_receive_skb_internal+0x5c/0xaf
    [ 989.919533] napi_gro_receive+0x45/0x81
    [ 989.919536] ixgbe_poll+0xc8a/0xf09
    [ 989.919539] ? kmem_cache_free_bulk+0x1b6/0x1f7
    [ 989.919540] net_rx_action+0xf4/0x266
    [ 989.919543] __do_softirq+0xa8/0x19d
    [ 989.919545] irq_exit+0x5d/0x6b
    [ 989.919546] do_IRQ+0x9c/0xb5
    [ 989.919548] common_interrupt+0x93/0x93
    [ 989.919548]

    Similarly dst_clone() can use dst_hold() helper to have additional
    debugging, as a follow up to commit 44ebe79149ff ("net: add debug
    atomic_inc_not_zero() in dst_hold()")

    In net-next we will convert dst atomic_t to refcount_t for peace of
    mind.

    Fixes: a4c2fd7f7891 ("net: remove DST_NOCACHE flag")
    Signed-off-by: Eric Dumazet
    Cc: Wei Wang
    Reported-by: Paweł Staszewski
    Bisected-by: Paweł Staszewski
    Acked-by: Wei Wang
    Acked-by: Martin KaFai Lau
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Normally, when input device supporting force feedback effects is being
    destroyed, we try to "flush" currently playing effects, so that the
    physical device does not continue vibrating (or executing other effects).
    Unfortunately this does not work well for uinput as flushing of the effects
    deadlocks with the destroy action:

    - if device is being destroyed because the file descriptor is being closed,
    then there is noone to even service FF requests;

    - if device is being destroyed because userspace sent UI_DEV_DESTROY,
    while theoretically it could be possible to service FF requests,
    userspace is unlikely to do so (they'd need to make sure FF handling
    happens on a separate thread) even if kernel solves the issue with FF
    ioctls deadlocking with UI_DEV_DESTROY ioctl on udev->mutex.

    To avoid lockups like the one below, let's install a custom input device
    flush handler, and avoid trying to flush force feedback effects when we
    destroying the device, and instead rely on uinput to shut off the device
    properly.

    NMI watchdog: Watchdog detected hard LOCKUP on cpu 3
    ...
    <> [] _raw_spin_lock_irqsave+0x37/0x40
    [] complete+0x1d/0x50
    [] uinput_request_done+0x3c/0x40 [uinput]
    [] uinput_request_submit.part.7+0x47/0xb0 [uinput]
    [] uinput_dev_erase_effect+0x5b/0x76 [uinput]
    [] erase_effect+0xad/0xf0
    [] flush_effects+0x4d/0x90
    [] input_flush_device+0x40/0x60
    [] evdev_cleanup+0xac/0xc0
    [] evdev_disconnect+0x2b/0x60
    [] __input_unregister_device+0xac/0x150
    [] input_unregister_device+0x47/0x70
    [] uinput_destroy_device+0xb5/0xc0 [uinput]
    [] uinput_ioctl_handler.isra.9+0x65e/0x740 [uinput]
    [] ? do_futex+0x12b/0xad0
    [] uinput_ioctl+0x18/0x20 [uinput]
    [] do_vfs_ioctl+0x298/0x480
    [] ? security_file_ioctl+0x43/0x60
    [] SyS_ioctl+0x79/0x90
    [] entry_SYSCALL_64_fastpath+0x12/0x71

    Reported-by: Rodrigo Rivas Costa
    Reported-by: Clément VUCHENER
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=193741
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • Commit 3f1ac7a700d0 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")
    deprecated the ethtool_cmd::transceiver field, which was fine in
    premise, except that the PHY library was actually using it to report the
    type of transceiver: internal or external.

    Use the first word of the reserved field to put this __u8 transceiver
    field back in. It is made read-only, and we don't expect the
    ETHTOOL_xLINKSETTINGS API to be doing anything with this anyway, so this
    is mostly for the legacy path where we do:

    ethtool_get_settings()
    -> dev->ethtool_ops->get_link_ksettings()
    -> convert_link_ksettings_to_legacy_settings()

    to have no information loss compared to the legacy get_settings API.

    Fixes: 3f1ac7a700d0 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     

21 Sep, 2017

2 commits

  • This reverts commit 74def747bcd09692bdbf8c6a15350795b0f11ca8.

    The change to the helper function is only correct for the /proc/irq/
    readout usage, but breaks the existing x86 usage of that function.

    Reported-by: Yanko Kaneti
    Signed-off-by: Thomas Gleixner
    Cc: Marc Zyngier

    Thomas Gleixner
     
  • This patch fixes a bug exhibited by the following scenario:
    1. fd1 = perf_event_open with attr.config = ID1
    2. attach bpf program prog1 to fd1
    3. fd2 = perf_event_open with attr.config = ID1

    4. user program closes fd2 and prog1 is detached from the tracepoint.
    5. user program with fd1 does not work properly as tracepoint
    no output any more.

    The issue happens at step 4. Multiple perf_event_open can be called
    successfully, but only one bpf prog pointer in the tp_event. In the
    current logic, any fd release for the same tp_event will free
    the tp_event->prog.

    The fix is to free tp_event->prog only when the closing fd
    corresponds to the one which registered the program.

    Signed-off-by: Yonghong Song
    Signed-off-by: David S. Miller

    Yonghong Song
     

20 Sep, 2017

2 commits

  • Due to commit db3e50f3234b (device property: Get rid of struct
    fwnode_handle type field), ACPI_HANDLE() inadvertently became
    a GPL-only call. The call path that led to that was:

    ACPI_HANDLE()
    ACPI_COMPANION()
    to_acpi_device_node()
    is_acpi_device_node()
    acpi_device_fwnode_ops
    DECLARE_ACPI_FWNODE_OPS(acpi_device_fwnode_ops);

    ...and the new DECLARE_ACPI_FWNODE_OPS() includes
    EXPORT_SYMBOL_GPL, whereas previously it was a static struct.

    In order to avoid changing any of that, let's instead provide ever
    so slightly better encapsulation of those struct fwnode_operations
    instances. Those do not really need to be directly used in
    inline function calls in header files. Simply moving two small
    functions (is_acpi_device_node and is_acpi_data_node) out of
    acpi_bus.h, and into a .c file, does that.

    That leaves the internals of struct fwnode_operations as GPL-only
    (which I think was the intent all along), but un-breaks any driver
    code out there that relies on the ACPI subsystem's being (historically)
    an EXPORT_SYMBOL-usable system. By that, I mean, ACPI_HANDLE() and
    other basic ACPI calls were non-GPL-protected.

    Also, while I'm there, remove a tiny bit of redundancy that was missed
    in the earlier commit, by having is_acpi_node() use the other two
    routines, instead of checking fwnode directly.

    Fixes: db3e50f3234b (device property: Get rid of struct fwnode_handle type field)
    Signed-off-by: John Hubbard
    Acked-by: Sakari Ailus
    Acked-by: Mika Westerberg
    Signed-off-by: Rafael J. Wysocki

    John Hubbard
     
  • The ipmmu-vmsa driver fails in compile-testing on non-OF platforms:

    drivers/iommu/ipmmu-vmsa.o: In function `ipmmu_of_xlate':
    ipmmu-vmsa.c:(.text+0x740): undefined reference to `of_find_device_by_node'

    It would be reasonable to assume that this interface works but
    returns failure on non-OF builds, like it does on machines that
    have been booted in another way, so this adds another inline
    function helper.

    Fixes: 7b2d59611fef ("iommu/ipmmu-vmsa: Replace local utlb code with fwspec ids")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Rob Herring

    Arnd Bergmann
     

19 Sep, 2017

2 commits

  • This is unused, and conflicts with the definition that we'll add for XPFO.

    Signed-off-by: Tycho Andersen
    Reviewed-by: Julien Grall
    CC: Boris Ostrovsky
    CC: Juergen Gross
    CC: Stefano Stabellini
    Signed-off-by: Boris Ostrovsky

    Tycho Andersen
     
  • remove tcp_may_send_now and tcp_snd_test that are no longer used

    Fixes: 840a3cbe8969 ("tcp: remove forward retransmit feature")
    Signed-off-by: Yuchung Cheng
    Signed-off-by: Neal Cardwell
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Yuchung Cheng
     

18 Sep, 2017

3 commits

  • Correct location as of commit 2728b2d2e5be4b82 (PM / core / docs:
    Convert sleep states API document to reST).

    Fixes: 2728b2d2e5be4b82 (PM / core / docs: Convert sleep states API document to reST)
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Rafael J. Wysocki

    Geert Uytterhoeven
     
  • some trivial amdkfd cleanups

    * tag 'drm-amdkfd-next-2017-09-02' of git://people.freedesktop.org/~gabbayo/linux:
    drm/amdkfd: pass queue's mqd when destroying mqd
    drm/amdkfd: remove memset before memcpy
    uapi linux/kfd_ioctl.h: only use __u32 and __u64

    Dave Airlie
     
  • Use CHECK_DATA_CORRUPTION instead of BUG_ON to provide more flexibility
    on address limit failures. By default, send a SIGKILL signal to kill the
    current process preventing exploitation of a bad address limit.

    Make the TIF_FSCHECK flag optional so ARM can use this function.

    Signed-off-by: Thomas Garnier
    Signed-off-by: Kees Cook
    Signed-off-by: Thomas Gleixner
    Cc: Pratyush Anand
    Cc: Dave Martin
    Cc: Will Drewry
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Russell King
    Cc: Andy Lutomirski
    Cc: David Howells
    Cc: Dave Hansen
    Cc: Al Viro
    Cc: linux-api@vger.kernel.org
    Cc: Yonghong Song
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/1504798247-48833-2-git-send-email-keescook@chromium.org

    Thomas Garnier
     

17 Sep, 2017

1 commit

  • Pull networking fixes from David Miller:

    1) Fix hotplug deadlock in hv_netvsc, from Stephen Hemminger.

    2) Fix double-free in rmnet driver, from Dan Carpenter.

    3) INET connection socket layer can double put request sockets, fix
    from Eric Dumazet.

    4) Don't match collect metadata-mode tunnels if the device is down,
    from Haishuang Yan.

    5) Do not perform TSO6/GSO on ipv6 packets with extensions headers in
    be2net driver, from Suresh Reddy.

    6) Fix scaling error in gen_estimator, from Eric Dumazet.

    7) Fix 64-bit statistics deadlock in systemport driver, from Florian
    Fainelli.

    8) Fix use-after-free in sctp_sock_dump, from Xin Long.

    9) Reject invalid BPF_END instructions in verifier, from Edward Cree.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (43 commits)
    mlxsw: spectrum_router: Only handle IPv4 and IPv6 events
    Documentation: link in networking docs
    tcp: fix data delivery rate
    bpf/verifier: reject BPF_ALU64|BPF_END
    sctp: do not mark sk dumped when inet_sctp_diag_fill returns err
    sctp: fix an use-after-free issue in sctp_sock_dump
    netvsc: increase default receive buffer size
    tcp: update skb->skb_mstamp more carefully
    net: ipv4: fix l3slave check for index returned in IP_PKTINFO
    net: smsc911x: Quieten netif during suspend
    net: systemport: Fix 64-bit stats deadlock
    net: vrf: avoid gcc-4.6 warning
    qed: remove unnecessary call to memset
    tg3: clean up redundant initialization of tnapi
    tls: make tls_sw_free_resources static
    sctp: potential read out of bounds in sctp_ulpevent_type_enabled()
    MAINTAINERS: review Renesas DT bindings as well
    net_sched: gen_estimator: fix scaling error in bytes/packets samples
    nfp: wait for the NSP resource to appear on boot
    nfp: wait for board state before talking to the NSP
    ...

    Linus Torvalds
     

16 Sep, 2017

3 commits

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for 4.14 for MIPS; below a summary of
    the non-merge commits:

    CM:
    - Rename mips_cm_base to mips_gcr_base
    - Specify register size when generating accessors
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Add cluster & block args to mips_cm_lock_other()

    CPC:
    - Use common CPS accessor generation macros
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Introduce register modify (set/clear/change) accessors
    - Use change_*, set_* & clear_* where appropriate
    - Add CM/CPC 3.5 register definitions
    - Use GlobalNumber macros rather than magic numbers
    - Have asm/mips-cps.h include CM & CPC headers
    - Cluster support for topology functions
    - Detect CPUs in secondary clusters

    CPS:
    - Read GIC_VL_IDENT directly, not via irqchip driver

    DMA:
    - Consolidate coherent and non-coherent dma_alloc code
    - Don't use dma_cache_sync to implement fd_cacheflush

    FPU emulation / FP assist code:
    - Another series of 14 commits fixing corner cases such as NaN
    propgagation and other special input values.
    - Zero bits 32-63 of the result for a CLASS.D instruction.
    - Enhanced statics via debugfs
    - Do not use bools for arithmetic. GCC 7.1 moans about this.
    - Correct user fault_addr type

    Generic MIPS:
    - Enhancement of stack backtraces
    - Cleanup from non-existing options
    - Handle non word sized instructions when examining frame
    - Fix detection and decoding of ADDIUSP instruction
    - Fix decoding of SWSP16 instruction
    - Refactor handling of stack pointer in get_frame_info
    - Remove unreachable code from force_fcr31_sig()
    - Convert to using %pOF instead of full_name
    - Remove the R6000 support.
    - Move FP code from *_switch.S to *_fpu.S
    - Remove unused ST_OFF from r2300_switch.S
    - Allow platform to specify multiple its.S files
    - Add #includes to various files to ensure code builds reliable and
    without warning..
    - Remove __invalidate_kernel_vmap_range
    - Remove plat_timer_setup
    - Declare various variables & functions static
    - Abstract CPU core & VP(E) ID access through accessor functions
    - Store core & VP IDs in GlobalNumber-style variable
    - Unify checks for sibling CPUs
    - Add CPU cluster number accessors
    - Prevent direct use of generic_defconfig
    - Make CONFIG_MIPS_MT_SMP default y
    - Add __ioread64_copy
    - Remove unnecessary inclusions of linux/irqchip/mips-gic.h

    GIC:
    - Introduce asm/mips-gic.h with accessor functions
    - Use new GIC accessor functions in mips-gic-timer
    - Remove counter access functions from irq-mips-gic.c
    - Remove gic_read_local_vp_id() from irq-mips-gic.c
    - Simplify shared interrupt pending/mask reads in irq-mips-gic.c
    - Simplify gic_local_irq_domain_map() in irq-mips-gic.c
    - Drop gic_(re)set_mask() functions in irq-mips-gic.c
    - Remove gic_set_polarity(), gic_set_trigger(), gic_set_dual_edge(),
    gic_map_to_pin() and gic_map_to_vpe() from irq-mips-gic.c.
    - Convert remaining shared reg access, local int mask access and
    remaining local reg access to new accessors
    - Move GIC_LOCAL_INT_* to asm/mips-gic.h
    - Remove GIC_CPU_INT* macros from irq-mips-gic.c
    - Move various definitions to the driver
    - Remove gic_get_usm_range()
    - Remove __gic_irq_dispatch() forward declaration
    - Remove gic_init()
    - Use mips_gic_present() in place of gic_present and remove
    gic_present
    - Move gic_get_c0_*_int() to asm/mips-gic.h
    - Remove linux/irqchip/mips-gic.h
    - Inline __gic_init()
    - Inline gic_basic_init()
    - Make pcpu_masks a per-cpu variable
    - Use pcpu_masks to avoid reading GIC_SH_MASK*
    - Clean up mti, reserved-cpu-vectors handling
    - Use cpumask_first_and() in gic_set_affinity()
    - Let the core set struct irq_common_data affinity

    microMIPS:
    - Fix microMIPS stack unwinding on big endian systems

    MIPS-GIC:
    - SYNC after enabling GIC region

    NUMA:
    - Remove the unused parent_node() macro

    R6:
    - Constify r2_decoder_tables
    - Add accessor & bit definitions for GlobalNumber

    SMP:
    - Constify smp ops
    - Allow boot_secondary SMP op to return errors

    VDSO:
    - Drop gic_get_usm_range() usage
    - Avoid use of linux/irqchip/mips-gic.h

    Platform changes:

    Alchemy:
    - Add devboard machine type to cpuinfo
    - update cpu feature overrides
    - Threaded carddetect irqs for devboards

    AR7:
    - allow NULL clock for clk_get_rate

    BCM63xx:
    - Fix ENETDMA_6345_MAXBURST_REG offset
    - Allow NULL clock for clk_get_rate

    CI20:
    - Enable GPIO and RTC drivers in defconfig
    - Add ethernet and fixed-regulator nodes to DTS

    Generic platform:
    - Move Boston and NI 169445 FIT image source to their own files
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Allow filtering enabled boards by requirements
    - Don't explicitly disable CONFIG_USB_SUPPORT
    - Bump default NR_CPUS to 16

    JZ4700:
    - Probe the jz4740-rtc driver from devicetree

    Lantiq:
    - Drop check of boot select from the spi-falcon driver.
    - Drop check of boot select from the lantiq-flash MTD driver.
    - Access boot cause register in the watchdog driver through regmap
    - Add device tree binding documentation for the watchdog driver
    - Add docs for the RCU DT bindings.
    - Convert the fpi bus driver to a platform_driver
    - Remove ltq_reset_cause() and ltq_boot_select(
    - Switch to a proper reset driver
    - Switch to a new drivers/soc GPHY driver
    - Add an USB PHY driver for the Lantiq SoCs using the RCU module
    - Use of_platform_default_populate instead of __dt_register_buses
    - Enable MFD_SYSCON to be able to use it for the RCU MFD
    - Replace ltq_boot_select() with dummy implementation.

    Loongson 2F:
    - Allow NULL clock for clk_get_rate

    Malta:
    - Use new GIC accessor functions

    NI 169445:
    - Add support for NI 169445 board.
    - Only include in 32r2el kernels

    Octeon:
    - Add support for watchdog of 78XX SOCs.
    - Add support for watchdog of CN68XX SOCs.
    - Expose support for mips32r1, mips32r2 and mips64r1
    - Enable more drivers in config file
    - Add support for accessing the boot vector.
    - Remove old boot vector code from watchdog driver
    - Define watchdog registers for 70xx, 73xx, 78xx, F75xx.
    - Make CSR functions node aware.
    - Allow access to CIU3 IRQ domains.
    - Misc cleanups in the watchdog driver

    Omega2+:
    - New board, add support and defconfig

    Pistachio:
    - Enable Root FS on NFS in defconfig

    Ralink:
    - Add Mediatek MT7628A SoC
    - Allow NULL clock for clk_get_rate
    - Explicitly request exclusive reset control in the pci-mt7620 PCI driver.

    SEAD3:
    - Only include in 32 bit kernels by default

    VoCore:
    - Add VoCore as a vendor t0 dt-bindings
    - Add defconfig file"

    * '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (167 commits)
    MIPS: Refactor handling of stack pointer in get_frame_info
    MIPS: Stacktrace: Fix microMIPS stack unwinding on big endian systems
    MIPS: microMIPS: Fix decoding of swsp16 instruction
    MIPS: microMIPS: Fix decoding of addiusp instruction
    MIPS: microMIPS: Fix detection of addiusp instruction
    MIPS: Handle non word sized instructions when examining frame
    MIPS: ralink: allow NULL clock for clk_get_rate
    MIPS: Loongson 2F: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: allow NULL clock for clk_get_rate
    MIPS: AR7: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: fix ENETDMA_6345_MAXBURST_REG offset
    mips: Save all registers when saving the frame
    MIPS: Add DWARF unwinding to assembly
    MIPS: Make SAVE_SOME more standard
    MIPS: Fix issues in backtraces
    MIPS: jz4780: DTS: Probe the jz4740-rtc driver from devicetree
    MIPS: Ci20: Enable RTC driver
    watchdog: octeon-wdt: Add support for 78XX SOCs.
    watchdog: octeon-wdt: Add support for cn68XX SOCs.
    watchdog: octeon-wdt: File cleaning.
    ...

    Linus Torvalds
     
  • Pull more KVM updates from Paolo Bonzini:
    - PPC bugfixes
    - RCU splat fix
    - swait races fix
    - pointless userspace-triggerable BUG() fix
    - misc fixes for KVM_RUN corner cases
    - nested virt correctness fixes + one host DoS
    - some cleanups
    - clang build fix
    - fix AMD AVIC with default QEMU command line options
    - x86 bugfixes

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
    kvm: nVMX: Handle deferred early VMLAUNCH/VMRESUME failure properly
    kvm: vmx: Handle VMLAUNCH/VMRESUME failure properly
    kvm: nVMX: Remove nested_vmx_succeed after successful VM-entry
    kvm,mips: Fix potential swait_active() races
    kvm,powerpc: Serialize wq active checks in ops->vcpu_kick
    kvm: Serialize wq active checks in kvm_vcpu_wake_up()
    kvm,x86: Fix apf_task_wake_one() wq serialization
    kvm,lapic: Justify use of swait_active()
    kvm,async_pf: Use swq_has_sleeper()
    sched/wait: Add swq_has_sleeper()
    KVM: VMX: Do not BUG() on out-of-bounds guest IRQ
    KVM: Don't accept obviously wrong gsi values via KVM_IRQFD
    kvm: nVMX: Don't allow L2 to access the hardware CR8
    KVM: trace events: update list of exit reasons
    KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
    KVM: X86: Don't block vCPU if there is pending exception
    KVM: SVM: Add irqchip_split() checks before enabling AVIC
    KVM: Add struct kvm_vcpu pointer parameter to get_enable_apicv()
    KVM: SVM: Refactor AVIC vcpu initialization into avic_init_vcpu()
    KVM: x86: fix clang build
    ...

    Linus Torvalds
     
  • Commit 86fdb3448cc1 ("sctp: ensure ep is not destroyed before doing the
    dump") tried to fix an use-after-free issue by checking !sctp_sk(sk)->ep
    with holding sock and sock lock.

    But Paolo noticed that endpoint could be destroyed in sctp_rcv without
    sock lock protection. It means the use-after-free issue still could be
    triggered when sctp_rcv put and destroy ep after sctp_sock_dump checks
    !ep, although it's pretty hard to reproduce.

    I could reproduce it by mdelay in sctp_rcv while msleep in sctp_close
    and sctp_sock_dump long time.

    This patch is to add another param cb_done to sctp_for_each_transport
    and dump ep->assocs with holding tsp after jumping out of transport's
    traversal in it to avoid this issue.

    It can also improve sctp diag dump to make it run faster, as no need
    to save sk into cb->args[5] and keep calling sctp_for_each_transport
    any more.

    This patch is also to use int * instead of int for the pos argument
    in sctp_for_each_transport, which could make postion increment only
    in sctp_for_each_transport and no need to keep changing cb->args[2]
    in sctp_sock_filter and sctp_sock_dump any more.

    Fixes: 86fdb3448cc1 ("sctp: ensure ep is not destroyed before doing the dump")
    Reported-by: Paolo Abeni
    Signed-off-by: Xin Long
    Acked-by: Marcelo Ricardo Leitner
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Xin Long
     

15 Sep, 2017

14 commits

  • Which is the equivalent of what we have in regular waitqueues.
    I'm not crazy about the name, but this also helps us get both
    apis closer -- which iirc comes originally from the -net folks.

    We also duplicate the comments for the lockless swait_active(),
    from wait.h. Future users will make use of this interface.

    Signed-off-by: Davidlohr Bueso
    Signed-off-by: Paolo Bonzini

    Davidlohr Bueso
     
  • This patch constifies the path argument to kernel_read_file_from_path().

    Signed-off-by: Mimi Zohar
    Cc: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Mimi Zohar
     
  • Pull misc leftovers from Al Viro.

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fix the __user misannotations in asm-generic get_user/put_user
    fput: Don't reinvent the wheel but use existing llist API
    namespace.c: Don't reinvent the wheel but use existing llist API

    Linus Torvalds
     
  • Pull nowait read support from Al Viro:
    "Support IOCB_NOWAIT for buffered reads and block devices"

    * 'work.read_write' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    block_dev: support RFW_NOWAIT on block device nodes
    fs: support RWF_NOWAIT for buffered reads
    fs: support IOCB_NOWAIT in generic_file_buffered_read
    fs: pass iocb to do_generic_file_read

    Linus Torvalds
     
  • Pull mount flag updates from Al Viro:
    "Another chunk of fmount preparations from dhowells; only trivial
    conflicts for that part. It separates MS_... bits (very grotty
    mount(2) ABI) from the struct super_block ->s_flags (kernel-internal,
    only a small subset of MS_... stuff).

    This does *not* convert the filesystems to new constants; only the
    infrastructure is done here. The next step in that series is where the
    conflicts would be; that's the conversion of filesystems. It's purely
    mechanical and it's better done after the merge, so if you could run
    something like

    list=$(for i in MS_RDONLY MS_NOSUID MS_NODEV MS_NOEXEC MS_SYNCHRONOUS MS_MANDLOCK MS_DIRSYNC MS_NOATIME MS_NODIRATIME MS_SILENT MS_POSIXACL MS_KERNMOUNT MS_I_VERSION MS_LAZYTIME; do git grep -l $i fs drivers/staging/lustre drivers/mtd ipc mm include/linux; done|sort|uniq|grep -v '^fs/namespace.c$')

    sed -i -e 's/\/SB_RDONLY/g' \
    -e 's/\/SB_NOSUID/g' \
    -e 's/\/SB_NODEV/g' \
    -e 's/\/SB_NOEXEC/g' \
    -e 's/\/SB_SYNCHRONOUS/g' \
    -e 's/\/SB_MANDLOCK/g' \
    -e 's/\/SB_DIRSYNC/g' \
    -e 's/\/SB_NOATIME/g' \
    -e 's/\/SB_NODIRATIME/g' \
    -e 's/\/SB_SILENT/g' \
    -e 's/\/SB_POSIXACL/g' \
    -e 's/\/SB_KERNMOUNT/g' \
    -e 's/\/SB_I_VERSION/g' \
    -e 's/\/SB_LAZYTIME/g' \
    $list

    and commit it with something along the lines of 'convert filesystems
    away from use of MS_... constants' as commit message, it would save a
    quite a bit of headache next cycle"

    * 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    VFS: Differentiate mount flags (MS_*) from internal superblock flags
    VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb)
    vfs: Add sb_rdonly(sb) to query the MS_RDONLY flag on s_flags

    Linus Torvalds
     
  • Pull more set_fs removal from Al Viro:
    "Christoph's 'use kernel_read and friends rather than open-coding
    set_fs()' series"

    * 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: unexport vfs_readv and vfs_writev
    fs: unexport vfs_read and vfs_write
    fs: unexport __vfs_read/__vfs_write
    lustre: switch to kernel_write
    gadget/f_mass_storage: stop messing with the address limit
    mconsole: switch to kernel_read
    btrfs: switch write_buf to kernel_write
    net/9p: switch p9_fd_read to kernel_write
    mm/nommu: switch do_mmap_private to kernel_read
    serial2002: switch serial2002_tty_write to kernel_{read/write}
    fs: make the buf argument to __kernel_write a void pointer
    fs: fix kernel_write prototype
    fs: fix kernel_read prototype
    fs: move kernel_read to fs/read_write.c
    fs: move kernel_write to fs/read_write.c
    autofs4: switch autofs4_write to __kernel_write
    ashmem: switch to ->read_iter

    Linus Torvalds
     
  • Pull ipc compat cleanup and 64-bit time_t from Al Viro:
    "IPC copyin/copyout sanitizing, including 64bit time_t work from Deepa
    Dinamani"

    * 'work.ipc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    utimes: Make utimes y2038 safe
    ipc: shm: Make shmid_kernel timestamps y2038 safe
    ipc: sem: Make sem_array timestamps y2038 safe
    ipc: msg: Make msg_queue timestamps y2038 safe
    ipc: mqueue: Replace timespec with timespec64
    ipc: Make sys_semtimedop() y2038 safe
    get rid of SYSVIPC_COMPAT on ia64
    semtimedop(): move compat to native
    shmat(2): move compat to native
    msgrcv(2), msgsnd(2): move compat to native
    ipc(2): move compat to native
    ipc: make use of compat ipc_perm helpers
    semctl(): move compat to native
    semctl(): separate all layout-dependent copyin/copyout
    msgctl(): move compat to native
    msgctl(): split the actual work from copyin/copyout
    ipc: move compat shmctl to native
    shmctl: split the work from copyin/copyout

    Linus Torvalds
     
  • Pull zstd support from Chris Mason:
    "Nick Terrell's patch series to add zstd support to the kernel has been
    floating around for a while. After talking with Dave Sterba, Herbert
    and Phillip, we decided to send the whole thing in as one pull
    request.

    zstd is a big win in speed over zlib and in compression ratio over
    lzo, and the compression team here at FB has gotten great results
    using it in production. Nick will continue to update the kernel side
    with new improvements from the open source zstd userland code.

    Nick has a number of benchmarks for the main zstd code in his lib/zstd
    commit:

    I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB
    of RAM. The VM is running on a MacBook Pro with a 3.1 GHz Intel
    Core i7 processor, 16 GB of RAM, and a SSD. I benchmarked using
    `silesia.tar` [3], which is 211,988,480 B large. Run the following
    commands for the benchmark:

    sudo modprobe zstd_compress_test
    sudo mknod zstd_compress_test c 245 0
    sudo cp silesia.tar zstd_compress_test

    The time is reported by the time of the userland `cp`.
    The MB/s is computed with

    1,536,217,008 B / time(buffer size, hash)

    which includes the time to copy from userland.
    The Adjusted MB/s is computed with

    1,536,217,088 B / (time(buffer size, hash) - time(buffer size, none)).

    The memory reported is the amount of memory the compressor
    requests.

    | Method | Size (B) | Time (s) | Ratio | MB/s | Adj MB/s | Mem (MB) |
    |----------|----------|----------|-------|---------|----------|----------|
    | none | 11988480 | 0.100 | 1 | 2119.88 | - | - |
    | zstd -1 | 73645762 | 1.044 | 2.878 | 203.05 | 224.56 | 1.23 |
    | zstd -3 | 66988878 | 1.761 | 3.165 | 120.38 | 127.63 | 2.47 |
    | zstd -5 | 65001259 | 2.563 | 3.261 | 82.71 | 86.07 | 2.86 |
    | zstd -10 | 60165346 | 13.242 | 3.523 | 16.01 | 16.13 | 13.22 |
    | zstd -15 | 58009756 | 47.601 | 3.654 | 4.45 | 4.46 | 21.61 |
    | zstd -19 | 54014593 | 102.835 | 3.925 | 2.06 | 2.06 | 60.15 |
    | zlib -1 | 77260026 | 2.895 | 2.744 | 73.23 | 75.85 | 0.27 |
    | zlib -3 | 72972206 | 4.116 | 2.905 | 51.50 | 52.79 | 0.27 |
    | zlib -6 | 68190360 | 9.633 | 3.109 | 22.01 | 22.24 | 0.27 |
    | zlib -9 | 67613382 | 22.554 | 3.135 | 9.40 | 9.44 | 0.27 |

    I benchmarked zstd decompression using the same method on the same
    machine. The benchmark file is located in the upstream zstd repo
    under `contrib/linux-kernel/zstd_decompress_test.c` [4]. The
    memory reported is the amount of memory required to decompress
    data compressed with the given compression level. If you know the
    maximum size of your input, you can reduce the memory usage of
    decompression irrespective of the compression level.

    | Method | Time (s) | MB/s | Adjusted MB/s | Memory (MB) |
    |----------|----------|---------|---------------|-------------|
    | none | 0.025 | 8479.54 | - | - |
    | zstd -1 | 0.358 | 592.15 | 636.60 | 0.84 |
    | zstd -3 | 0.396 | 535.32 | 571.40 | 1.46 |
    | zstd -5 | 0.396 | 535.32 | 571.40 | 1.46 |
    | zstd -10 | 0.374 | 566.81 | 607.42 | 2.51 |
    | zstd -15 | 0.379 | 559.34 | 598.84 | 4.61 |
    | zstd -19 | 0.412 | 514.54 | 547.77 | 8.80 |
    | zlib -1 | 0.940 | 225.52 | 231.68 | 0.04 |
    | zlib -3 | 0.883 | 240.08 | 247.07 | 0.04 |
    | zlib -6 | 0.844 | 251.17 | 258.84 | 0.04 |
    | zlib -9 | 0.837 | 253.27 | 287.64 | 0.04 |

    I ran a long series of tests and benchmarks on the btrfs side and the
    gains are very similar to the core benchmarks Nick ran"

    * 'zstd-minimal' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    squashfs: Add zstd support
    btrfs: Add zstd support
    lib: Add zstd modules
    lib: Add xxhash module

    Linus Torvalds
     
  • …/device-mapper/linux-dm

    Pull device mapper updates from Mike Snitzer:

    - Some request-based DM core and DM multipath fixes and cleanups

    - Constify a few variables in DM core and DM integrity

    - Add bufio optimization and checksum failure accounting to DM
    integrity

    - Fix DM integrity to avoid checking integrity of failed reads

    - Fix DM integrity to use init_completion

    - A couple DM log-writes target fixes

    - Simplify DAX flushing by eliminating the unnecessary flush
    abstraction that was stood up for DM's use.

    * tag 'for-4.14/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dax: remove the pmem_dax_ops->flush abstraction
    dm integrity: use init_completion instead of COMPLETION_INITIALIZER_ONSTACK
    dm integrity: make blk_integrity_profile structure const
    dm integrity: do not check integrity for failed read operations
    dm log writes: fix >512b sectorsize support
    dm log writes: don't use all the cpu while waiting to log blocks
    dm ioctl: constify ioctl lookup table
    dm: constify argument arrays
    dm integrity: count and display checksum failures
    dm integrity: optimize writing dm-bufio buffers that are partially changed
    dm rq: do not update rq partially in each ending bio
    dm rq: make dm-sq requeuing behavior consistent with dm-mq behavior
    dm mpath: complain about unsupported __multipath_map_bio() return values
    dm mpath: avoid that building with W=1 causes gcc 7 to complain about fall-through

    Linus Torvalds
     
  • Pull fbdev updates from Bartlomiej Zolnierkiewicz:

    - make fbcon a built-time depency for fbdev (fbcon was tristate option
    before, now it is a bool) - this is a first step in preparations for
    making console_lock usage saner (currently it acts like the BKL for
    all things fbdev/fbcon) (Daniel Vetter)

    - add fbcon=margin: command line option to select the fbcon
    margin color (David Lechner)

    - add DMI quirk table for x86 systems which need fbcon rotation
    (devices like Asus T100HA, GPD Pocket, the GPD win and the I.T.Works
    TW891) (Hans de Goede)

    - fix 1bpp logo support for unusual width (needed by LEGO MINDSTORMS
    EV3) (David Lechner)

    - enable Xilinx FB driver for ARM ZynqMP platform (Michal Simek)

    - fix use after free in the error path of udlfb driver (Anton Vasilyev)

    - fix error return code handling in pxa3xx_gcu driver (Gustavo A. R.
    Silva)

    - fix bootparams.screeninfo arguments checking in vgacon (Jan H.
    Schönherr)

    - do not leak uninitialized padding in clk to userspace in the debug
    code of atyfb driver (Vladis Dronov)

    - fix compiler warnings in fbcon code and matroxfb driver (Arnd
    Bergmann)

    - convert fbdev susbsytem to using %pOF instead of full_name (Rob
    Herring)

    - structures constifications (Arvind Yadav, Bhumika Goyal, Gustavo A.
    R. Silva, Julia Lawall)

    - misc cleanups (Gustavo A. R. Silva, Hyun Kwon, Julia Lawall, Kuninori
    Morimoto, Lynn Lei)

    * tag 'fbdev-v4.14' of git://github.com/bzolnier/linux: (75 commits)
    video/console: Update BIOS dates list for GPD win console rotation DMI quirk
    video/console: Add rotated LCD-panel DMI quirk for the VIOS LTH17
    video: fbdev: sis: fix duplicated code for different branches
    video: fbdev: make fb_var_screeninfo const
    video: fbdev: aty: do not leak uninitialized padding in clk to userspace
    vgacon: Prevent faulty bootparams.screeninfo from causing harm
    video: fbdev: make fb_videomode const
    video/console: Add new BIOS date for GPD pocket to dmi quirk table
    fbcon: remove restriction on margin color
    video: ARM CLCD: constify amba_id
    video: fm2fb: constify zorro_device_id
    video: fbdev: annotate fb_fix_screeninfo with const and __initconst
    omapfb: constify omap_video_timings structures
    video: fbdev: udlfb: Fix use after free on dlfb_usb_probe error path
    fbdev: i810: make fb_ops const
    fbdev: matrox: make fb_ops const
    video: fbdev: pxa3xx_gcu: fix error return code in pxa3xx_gcu_probe()
    video: fbdev: Enable Xilinx FB for ZynqMP
    video: fbdev: Fix multiple style issues in xilinxfb
    video: fbdev: udlfb: constify usb_device_id.
    ...

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "A few leftovers"

    * emailed patches from Andrew Morton :
    mm, page_owner: skip unnecessary stack_trace entries
    arm64: stacktrace: avoid listing stacktrace functions in stacktrace
    mm: treewide: remove GFP_TEMPORARY allocation flag
    IB/mlx4: fix sprintf format warning
    fscache: fix fscache_objlist_show format processing
    lib/test_bitmap.c: use ULL suffix for 64-bit constants
    procfs: remove unused variable
    drivers/media/cec/cec-adap.c: fix build with gcc-4.4.4
    idr: remove WARN_ON_ONCE() when trying to replace negative ID

    Linus Torvalds
     
  • Now that we have added breaks in the wait queue scan and allow bookmark
    on scan position, we put this logic in the wake_up_page_bit function.

    We can have very long page wait list in large system where multiple
    pages share the same wait list. We break the wake up walk here to allow
    other cpus a chance to access the list, and not to disable the interrupts
    when traversing the list for too long. This reduces the interrupt and
    rescheduling latency, and excessive page wait queue lock hold time.

    [ v2: Remove bookmark_wake_function ]

    Signed-off-by: Tim Chen
    Signed-off-by: Linus Torvalds

    Tim Chen
     
  • We encountered workloads that have very long wake up list on large
    systems. A waker takes a long time to traverse the entire wake list and
    execute all the wake functions.

    We saw page wait list that are up to 3700+ entries long in tests of
    large 4 and 8 socket systems. It took 0.8 sec to traverse such list
    during wake up. Any other CPU that contends for the list spin lock will
    spin for a long time. It is a result of the numa balancing migration of
    hot pages that are shared by many threads.

    Multiple CPUs waking are queued up behind the lock, and the last one
    queued has to wait until all CPUs did all the wakeups.

    The page wait list is traversed with interrupt disabled, which caused
    various problems. This was the original cause that triggered the NMI
    watch dog timer in: https://patchwork.kernel.org/patch/9800303/ . Only
    extending the NMI watch dog timer there helped.

    This patch bookmarks the waker's scan position in wake list and break
    the wake up walk, to allow access to the list before the waker resume
    its walk down the rest of the wait list. It lowers the interrupt and
    rescheduling latency.

    This patch also provides a performance boost when combined with the next
    patch to break up page wakeup list walk. We saw 22% improvement in the
    will-it-scale file pread2 test on a Xeon Phi system running 256 threads.

    [ v2: Merged in Linus' changes to remove the bookmark_wake_function, and
    simply access to flags. ]

    Reported-by: Kan Liang
    Tested-by: Kan Liang
    Signed-off-by: Tim Chen
    Signed-off-by: Linus Torvalds

    Tim Chen
     
  • Adding entries for exit reasons 23 - 27:

    KVM_EXIT_EPR
    KVM_EXIT_SYSTEM_EVENT
    KVM_EXIT_S390_STSI
    KVM_EXIT_IOAPIC_EOI
    KVM_EXIT_HYPERV

    Signed-off-by: Ladi Prosek
    Reviewed-by: Cornelia Huck
    Signed-off-by: Radim Krčmář

    Ladi Prosek