05 Apr, 2018

14 commits

  • Pull char/misc updates from Greg KH:
    "Here is the big set of char/misc driver patches for 4.17-rc1.

    There are a lot of little things in here, nothing huge, but all
    important to the different hardware types involved:

    - thunderbolt driver updates

    - parport updates (people still care...)

    - nvmem driver updates

    - mei updates (as always)

    - hwtracing driver updates

    - hyperv driver updates

    - extcon driver updates

    - ... and a handful of even smaller driver subsystem and individual
    driver updates

    All of these have been in linux-next with no reported issues"

    * tag 'char-misc-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (149 commits)
    hwtracing: Add HW tracing support menu
    intel_th: Add ACPI glue layer
    intel_th: Allow forcing host mode through drvdata
    intel_th: Pick up irq number from resources
    intel_th: Don't touch switch routing in host mode
    intel_th: Use correct method of finding hub
    intel_th: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate
    stm class: Make dummy's master/channel ranges configurable
    stm class: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate
    MAINTAINERS: Bestow upon myself the care for drivers/hwtracing
    hv: add SPDX license id to Kconfig
    hv: add SPDX license to trace
    Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
    Drivers: hv: vmbus: respect what we get from hv_get_synint_state()
    /dev/mem: Avoid overwriting "err" in read_mem()
    eeprom: at24: use SPDX identifier instead of GPL boiler-plate
    eeprom: at24: simplify the i2c functionality checking
    eeprom: at24: fix a line break
    eeprom: at24: tweak newlines
    eeprom: at24: refactor at24_probe()
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here is the "big" set of driver core patches for 4.17-rc1.

    There's really not much here, just a bunch of firmware code
    refactoring from Luis as he attempts to wrangle that codebase into
    something that is managable, along with a bunch of userspace tests for
    it. Other than that, a handful of small bugfixes and reverts of things
    that didn't work out.

    Full details are in the shortlog, it's not all that much.

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

    * tag 'driver-core-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits)
    drivers: base: remove check for callback in coredump_store()
    mt7601u: use firmware_request_cache() to address cache on reboot
    firmware: add firmware_request_cache() to help with cache on reboot
    firmware: fix typo on pr_info_once() when ignore_sysfs_fallback is used
    firmware: explicitly include vmalloc.h
    firmware: ensure the firmware cache is not used on incompatible calls
    test_firmware: modify custom fallback tests to use unique files
    firmware: add helper to check to see if fw cache is setup
    firmware: fix checking for return values for fw_add_devm_name()
    rename: _request_firmware_load() fw_load_sysfs_fallback()
    test_firmware: test three firmware kernel configs using a proc knob
    test_firmware: expand on library with shared helpers
    firmware: enable to force disable the fallback mechanism at run time
    firmware: enable run time change of forcing fallback loader
    firmware: move firmware loader into its own directory
    firmware: split firmware fallback functionality into its own file
    firmware: move loading timeout under struct firmware_fallback_config
    firmware: use helpers for setting up a temporary cache timeout
    firmware: simplify CONFIG_FW_LOADER_USER_HELPER_FALLBACK further
    drivers: base: add description for .coredump() callback
    ...

    Linus Torvalds
     
  • Pull staging/IIO updates from Greg KH:
    "Here is the big set of Staging/IIO driver patches for 4.17-rc1.

    It is a lot, over 500 changes, but not huge by previous kernel release
    standards. We deleted more lines than we added again (27k added vs.
    91k remvoed), thanks to finally being able to delete the IRDA drivers
    and networking code.

    We also deleted the ccree crypto driver, but that's coming back in
    through the crypto tree to you, in a much cleaned-up form.

    Added this round is at lot of "mt7621" device support, which is for an
    embedded device that Neil Brown cares about, and of course a handful
    of new IIO drivers as well.

    And finally, the fsl-mc core code moved out of the staging tree to the
    "real" part of the kernel, which is nice to see happen as well.

    Full details are in the shortlog, which has all of the tiny cleanup
    patches described.

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

    * tag 'staging-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (579 commits)
    staging: rtl8723bs: Remove yield call, replace with cond_resched()
    staging: rtl8723bs: Replace yield() call with cond_resched()
    staging: rtl8723bs: Remove unecessary newlines from 'odm.h'.
    staging: rtl8723bs: Rework 'struct _ODM_Phy_Status_Info_' coding style.
    staging: rtl8723bs: Rework 'struct _ODM_Per_Pkt_Info_' coding style.
    staging: rtl8723bs: Replace NULL pointer comparison with '!'.
    staging: rtl8723bs: Factor out rtl8723bs_recv_tasklet() sections.
    staging: rtl8723bs: Fix function signature that goes over 80 characters.
    staging: rtl8723bs: Fix lines too long in update_recvframe_attrib().
    staging: rtl8723bs: Remove unnecessary blank lines in 'rtl8723bs_recv.c'.
    staging: rtl8723bs: Change camel case to snake case in 'rtl8723bs_recv.c'.
    staging: rtl8723bs: Add missing braces in else statement.
    staging: rtl8723bs: Add spaces around ternary operators.
    staging: rtl8723bs: Fix lines with trailing open parentheses.
    staging: rtl8723bs: Remove unnecessary length #define's.
    staging: rtl8723bs: Fix IEEE80211 authentication algorithm constants.
    staging: rtl8723bs: Fix alignment in rtw_wx_set_auth().
    staging: rtl8723bs: Remove braces from single statement conditionals.
    staging: rtl8723bs: Remove unecessary braces from switch statement.
    staging: rtl8723bs: Fix newlines in rtw_wx_set_auth().
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here is the big set of tty and serial driver patches for 4.17-rc1

    Not all that big really, most are just small fixes and additions to
    existing drivers. There's a bunch of work on the imx serial driver
    recently for some reason, and a new embedded serial driver added as
    well.

    Full details are in the shortlog.

    All of these have been in the linux-next tree for a while with no
    reported issues"

    * tag 'tty-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (66 commits)
    serial: expose buf_overrun count through proc interface
    serial: mvebu-uart: fix tx lost characters
    tty: serial: msm_geni_serial: Fix return value check in qcom_geni_serial_probe()
    tty: serial: msm_geni_serial: Add serial driver support for GENI based QUP
    8250-men-mcb: add support for 16z025 and 16z057
    powerpc: Mark the variable earlycon_acpi_spcr_enable maybe_unused
    serial: stm32: fix initialization of RS485 mode
    ARM: dts: STi: Remove "console=ttyASN" from bootargs for STi boards
    vt: change SGR 21 to follow the standards
    serdev: Fix typo in serdev_device_alloc
    ARM: dts: STi: Fix aliases property name for STi boards
    tty: st-asc: Update tty alias
    serial: stm32: add support for RS485 hardware control mode
    dt-bindings: serial: stm32: add RS485 optional properties
    selftests: add devpts selftests
    devpts: comment devpts_mntget()
    devpts: resolve devpts bind-mounts
    devpts: hoist out check for DEVPTS_SUPER_MAGIC
    serial: 8250: Add Nuvoton NPCM UART
    serial: mxs-auart: disable clks of Alphascale ASM9260
    ...

    Linus Torvalds
     
  • Pull USB/PHY updates from Greg KH:
    "Here is the big set of USB and PHY driver patches for 4.17-rc1.

    Lots of USB typeC work happened this round, with code moving from the
    staging directory into the "real" part of the kernel, as well as new
    infrastructure being added to be able to handle the different types of
    "roles" that typeC requires.

    There is also the normal huge set of USB gadget controller and driver
    updates, along with XHCI changes, and a raft of other tiny fixes all
    over the USB tree. And the PHY driver updates are merged in here as
    well as they interacted with the USB drivers in some places.

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

    * tag 'usb-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (250 commits)
    Revert "USB: serial: ftdi_sio: add Id for Physik Instrumente E-870"
    usb: musb: gadget: misplaced out of bounds check
    usb: chipidea: imx: Fix ULPI on imx53
    usb: chipidea: imx: Cleanup ci_hdrc_imx_platform_flag
    usb: chipidea: usbmisc: small clean up
    usb: chipidea: usbmisc: evdo can be set e/o reset
    usb: chipidea: usbmisc: evdo is only specific to OTG port
    USB: serial: ftdi_sio: add Id for Physik Instrumente E-870
    usb: dwc3: gadget: never call ->complete() from ->ep_queue()
    usb: gadget: udc: core: update usb_ep_queue() documentation
    usb: host: Remove the deprecated ATH79 USB host config options
    usb: roles: Fix return value check in intel_xhci_usb_probe()
    USB: gadget: f_midi: fixing a possible double-free in f_midi
    usb: core: Add USB_QUIRK_DELAY_CTRL_MSG to usbcore quirks
    usb: core: Copy parameter string correctly and remove superfluous null check
    USB: announce bcdDevice as well as idVendor, idProduct.
    USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw
    usb: hub: Reduce warning to notice on power loss
    USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator
    USB: serial: cp210x: add ELDAT Easywave RX09 id
    ...

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "This fixes some fallout from the net-next merge the other day, plus
    some non-merge-window-related bug fixes:

    1) Fix sparse warnings in bcmgenet, systemport, b53, and mt7530
    (Florian Fainelli)

    2) pptp does a bogus dst_release() on a route we have a single
    refcount on, and attached to a socket, which needs that refcount
    (Eric Dumazet)

    3) UDP connected sockets on ipv6 can race with route update handling,
    resulting in a pre-PMTU update route still stuck on the socket and
    thus continuing to get ICMPV6_PKT_TOOBIG errors. We end up never
    seeing the updated route. (Alexey Kodanev)

    4) Missing list initializer(s) in TIPC (Jon Maloy)

    5) Connect phy early to prevent crashes in lan78xx driver (Alexander
    Graf)

    6) Fix build with modular NVMEM (Arnd Bergmann)

    7) netdevsim canot mark nsim_devlink_net_ops and nsim_fib_net_ops as
    __net_initdata, as these are references from module unload
    unconditionally (Arnd Bergmann)"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (23 commits)
    netdevsim: remove incorrect __net_initdata annotations
    sfc: remove ctpio_dmabuf_start from stats
    inet: frags: fix ip6frag_low_thresh boundary
    tipc: Fix namespace violation in tipc_sk_fill_sock_diag
    net: avoid unneeded atomic operation in ip*_append_data()
    nvmem: disallow modular CONFIG_NVMEM
    net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
    nfp: use full 40 bits of the NSP buffer address
    lan78xx: Connect phy early
    nfp: add a separate counter for packets with CHECKSUM_COMPLETE
    tipc: Fix missing list initializations in struct tipc_subscription
    ipv6: udp: set dst cache for a connected sk if current not valid
    ipv6: udp: convert 'connected' to bool type in udpv6_sendmsg()
    ipv6: allow to cache dst for a connected sk in ip6_sk_dst_lookup_flow()
    ipv6: add a wrapper for ip6_dst_store() with flowi6 checks
    net: phy: marvell10g: add thermal hwmon device
    pptp: remove a buggy dst release in pptp_connect()
    net: dsa: mt7530: Use NULL instead of plain integer
    net: dsa: b53: Fix sparse warnings in b53_mmap.c
    af_unix: remove redundant lockdep class
    ...

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "API:

    - add AEAD support to crypto engine

    - allow batch registration in simd

    Algorithms:

    - add CFB mode

    - add speck block cipher

    - add sm4 block cipher

    - new test case for crct10dif

    - improve scheduling latency on ARM

    - scatter/gather support to gcm in aesni

    - convert x86 crypto algorithms to skcihper

    Drivers:

    - hmac(sha224/sha256) support in inside-secure

    - aes gcm/ccm support in stm32

    - stm32mp1 support in stm32

    - ccree driver from staging tree

    - gcm support over QI in caam

    - add ks-sa hwrng driver"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (212 commits)
    crypto: ccree - remove unused enums
    crypto: ahash - Fix early termination in hash walk
    crypto: brcm - explicitly cast cipher to hash type
    crypto: talitos - don't leak pointers to authenc keys
    crypto: qat - don't leak pointers to authenc keys
    crypto: picoxcell - don't leak pointers to authenc keys
    crypto: ixp4xx - don't leak pointers to authenc keys
    crypto: chelsio - don't leak pointers to authenc keys
    crypto: caam/qi - don't leak pointers to authenc keys
    crypto: caam - don't leak pointers to authenc keys
    crypto: lrw - Free rctx->ext with kzfree
    crypto: talitos - fix IPsec cipher in length
    crypto: Deduplicate le32_to_cpu_array() and cpu_to_le32_array()
    crypto: doc - clarify hash callbacks state machine
    crypto: api - Keep failed instances alive
    crypto: api - Make crypto_alg_lookup static
    crypto: api - Remove unused crypto_type lookup function
    crypto: chelsio - Remove declaration of static function from header
    crypto: inside-secure - hmac(sha224) support
    crypto: inside-secure - hmac(sha256) support
    ..

    Linus Torvalds
     
  • Pull arm64 updates from Will Deacon:
    "Nothing particularly stands out here, probably because people were
    tied up with spectre/meltdown stuff last time around. Still, the main
    pieces are:

    - Rework of our CPU features framework so that we can whitelist CPUs
    that don't require kpti even in a heterogeneous system

    - Support for the IDC/DIC architecture extensions, which allow us to
    elide instruction and data cache maintenance when writing out
    instructions

    - Removal of the large memory model which resulted in suboptimal
    codegen by the compiler and increased the use of literal pools,
    which could potentially be used as ROP gadgets since they are
    mapped as executable

    - Rework of forced signal delivery so that the siginfo_t is
    well-formed and handling of show_unhandled_signals is consolidated
    and made consistent between different fault types

    - More siginfo cleanup based on the initial patches from Eric
    Biederman

    - Workaround for Cortex-A55 erratum #1024718

    - Some small ACPI IORT updates and cleanups from Lorenzo Pieralisi

    - Misc cleanups and non-critical fixes"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (70 commits)
    arm64: uaccess: Fix omissions from usercopy whitelist
    arm64: fpsimd: Split cpu field out from struct fpsimd_state
    arm64: tlbflush: avoid writing RES0 bits
    arm64: cmpxchg: Include linux/compiler.h in asm/cmpxchg.h
    arm64: move percpu cmpxchg implementation from cmpxchg.h to percpu.h
    arm64: cmpxchg: Include build_bug.h instead of bug.h for BUILD_BUG
    arm64: lse: Include compiler_types.h and export.h for out-of-line LL/SC
    arm64: fpsimd: include in fpsimd.h
    drivers/perf: arm_pmu_platform: do not warn about affinity on uniprocessor
    perf: arm_spe: include linux/vmalloc.h for vmap()
    Revert "arm64: Revert L1_CACHE_SHIFT back to 6 (64-byte cache line size)"
    arm64: cpufeature: Avoid warnings due to unused symbols
    arm64: Add work around for Arm Cortex-A55 Erratum 1024718
    arm64: Delay enabling hardware DBM feature
    arm64: Add MIDR encoding for Arm Cortex-A55 and Cortex-A35
    arm64: capabilities: Handle shared entries
    arm64: capabilities: Add support for checks based on a list of MIDRs
    arm64: Add helpers for checking CPU MIDR against a range
    arm64: capabilities: Clean up midr range helpers
    arm64: capabilities: Change scope of VHE to Boot CPU feature
    ...

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "The usual pile of boring changes:

    - Consolidate tasklet functions to share code instead of duplicating
    it

    - The first step for making the low level entry handler management on
    multi-platform kernels generic

    - A new sysfs file which allows to retrieve the wakeup state of
    interrupts.

    - Ensure that the interrupt thread follows the effective affinity and
    not the programmed affinity to avoid cross core wakeups.

    - Two new interrupt controller drivers (Microsemi Ocelot and Qualcomm
    PDC)

    - Fix the wakeup path clock handling for Reneasas interrupt chips.

    - Rework the boot time register reset for ARM GIC-V2/3

    - Better suspend/resume support for ARM GIV-V3/ITS

    - Add missing locking to the ARM GIC set_type() callback

    - Small fixes for the irq simulator code

    - SPDX identifiers for the irq core code and removal of boiler plate

    - Small cleanups all over the place"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
    openrisc: Set CONFIG_MULTI_IRQ_HANDLER
    arm64: Set CONFIG_MULTI_IRQ_HANDLER
    genirq: Make GENERIC_IRQ_MULTI_HANDLER depend on !MULTI_IRQ_HANDLER
    irqchip/gic: Take lock when updating irq type
    irqchip/gic: Update supports_deactivate static key to modern api
    irqchip/gic-v3: Ensure GICR_CTLR.EnableLPI=0 is observed before enabling
    irqchip: Add a driver for the Microsemi Ocelot controller
    dt-bindings: interrupt-controller: Add binding for the Microsemi Ocelot interrupt controller
    irqchip/gic-v3: Probe for SCR_EL3 being clear before resetting AP0Rn
    irqchip/gic-v3: Don't try to reset AP0Rn
    irqchip/gic-v3: Do not check trigger configuration of partitionned LPIs
    genirq: Remove license boilerplate/references
    genirq: Add missing SPDX identifiers
    genirq/matrix: Cleanup SPDX identifier
    genirq: Cleanup top of file comments
    genirq: Pass desc to __irq_free instead of irq number
    irqchip/gic-v3: Loudly complain about the use of IRQ_TYPE_NONE
    irqchip/gic: Loudly complain about the use of IRQ_TYPE_NONE
    RISC-V: Move to the new GENERIC_IRQ_MULTI_HANDLER handler
    genirq: Add CONFIG_GENERIC_IRQ_MULTI_HANDLER
    ...

    Linus Torvalds
     
  • Pull time(r) updates from Thomas Gleixner:
    "A small set of updates for timers and timekeeping:

    - The most interesting change is the consolidation of clock MONOTONIC
    and clock BOOTTIME.

    Clock MONOTONIC behaves now exactly like clock BOOTTIME and does
    not longer ignore the time spent in suspend. A new clock
    MONOTONIC_ACTIVE is provived which behaves like clock MONOTONIC in
    kernels before this change. This allows applications to
    programmatically check for the clock MONOTONIC behaviour.

    As discussed in the review thread, this has the potential of
    breaking user space and we might have to revert this. Knock on wood
    that we can avoid that exercise.

    - Updates to the NTP mechanism to improve accuracy

    - A new kernel internal data structure to aid the ongoing Y2038 work.

    - Cleanups and simplifications of the clocksource code.

    - Make the alarmtimer code play nicely with debugobjects"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    alarmtimer: Init nanosleep alarm timer on stack
    y2038: Introduce struct __kernel_old_timeval
    tracing: Unify the "boot" and "mono" tracing clocks
    hrtimer: Unify MONOTONIC and BOOTTIME clock behavior
    posix-timers: Unify MONOTONIC and BOOTTIME clock behavior
    timekeeping: Remove boot time specific code
    Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior
    timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock
    timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock
    timekeeping/ntp: Determine the multiplier directly from NTP tick length
    timekeeping/ntp: Don't align NTP frequency adjustments to ticks
    clocksource: Use ATTRIBUTE_GROUPS
    clocksource: Use DEVICE_ATTR_RW/RO/WO to define device attributes
    clocksource: Don't walk the clocksource list for empty override

    Linus Torvalds
     
  • Pull /dev/random updates from Ted Ts'o:
    "A few random (cough, cough) cleanups for the /dev/random driver"

    * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
    drivers/char/random.c: remove unused dont_count_entropy
    random: optimize add_interrupt_randomness
    random: always fill buffer in get_random_bytes_wait
    random: use a tighter cap in credit_entropy_bits_safe()

    Linus Torvalds
     
  • Pull vfs dcache updates from Al Viro:
    "Part of this is what the trylock loop elimination series has turned
    into, part making d_move() preserve the parent (and thus the path) of
    victim, plus some general cleanups"

    * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (22 commits)
    d_genocide: move export to definition
    fold dentry_lock_for_move() into its sole caller and clean it up
    make non-exchanging __d_move() copy ->d_parent rather than swap them
    oprofilefs: don't oops on allocation failure
    lustre: get rid of pointless casts to struct dentry *
    debugfs_lookup(): switch to lookup_one_len_unlocked()
    fold lookup_real() into __lookup_hash()
    take out orphan externs (empty_string/slash_string)
    split d_path() and friends into a separate file
    dcache.c: trim includes
    fs/dcache: Avoid a try_lock loop in shrink_dentry_list()
    get rid of trylock loop around dentry_kill()
    handle move to LRU in retain_dentry()
    dput(): consolidate the "do we need to retain it?" into an inlined helper
    split the slow part of lock_parent() off
    now lock_parent() can't run into killed dentry
    get rid of trylock loop in locking dentries on shrink list
    d_delete(): get rid of trylock loop
    fs/dcache: Move dentry_kill() below lock_parent()
    fs/dcache: Remove stale comment from dentry_kill()
    ...

    Linus Torvalds
     
  • The __net_initdata section cannot currently be used for structures that
    get cleaned up in an exitcall using unregister_pernet_operations:

    WARNING: vmlinux.o(.text+0x868c34): Section mismatch in reference from the function nsim_devlink_exit() to the (unknown reference) .init.data:(unknown)
    The function nsim_devlink_exit() references
    the (unknown reference) __initdata (unknown).
    This is often because nsim_devlink_exit lacks a __initdata
    annotation or the annotation of (unknown) is wrong.
    WARNING: vmlinux.o(.text+0x868c64): Section mismatch in reference from the function nsim_devlink_init() to the (unknown reference) .init.data:(unknown)
    WARNING: vmlinux.o(.text+0x8692bc): Section mismatch in reference from the function nsim_fib_exit() to the (unknown reference) .init.data:(unknown)
    WARNING: vmlinux.o(.text+0x869300): Section mismatch in reference from the function nsim_fib_init() to the (unknown reference) .init.data:(unknown)

    As that warning tells us, discarding the structure after a module is
    loaded would lead to a undefined behavior when that module is removed.

    It might be possible to change that annotation so it has no effect for
    loadable modules, but I have not figured out exactly how to do that, and
    we want this to be fixed in -rc1.

    This just removes the annotations, just like we do for all other such
    modules.

    Fixes: 37923ed6b8ce ("netdevsim: Add simple FIB resource controller via devlink")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • The ctpio_dmabuf_start entry is not actually a stat and shouldn't
    be exposed to ethtool.

    Fixes: 2c0b6ee837db ("sfc: expose CTPIO stats on NICs that support them")
    Signed-off-by: Bert Kenward
    Signed-off-by: David S. Miller

    Bert Kenward
     

04 Apr, 2018

26 commits

  • The new of_get_nvmem_mac_address() helper function causes a link error
    with CONFIG_NVMEM=m:

    drivers/of/of_net.o: In function `of_get_nvmem_mac_address':
    of_net.c:(.text+0x168): undefined reference to `of_nvmem_cell_get'
    of_net.c:(.text+0x19c): undefined reference to `nvmem_cell_read'
    of_net.c:(.text+0x1a8): undefined reference to `nvmem_cell_put'

    I could not come up with a good solution for this, as the code is always
    built-in. Using an #if IS_REACHABLE() check around it would solve the
    link time issue but then stop it from working in that configuration.
    Making of_nvmem_cell_get() an inline function could also solve that, but
    seems a bit ugly since it's somewhat larger than most inline functions,
    and it would just bring that problem into the callers. Splitting the
    function into a separate file might be an alternative.

    This uses the big hammer by making CONFIG_NVMEM itself a 'bool' symbol,
    which avoids the problem entirely but makes the vmlinux larger for anyone
    that might use NVMEM support but doesn't need it built-in otherwise.

    Fixes: 9217e566bdee ("of_net: Implement of_get_nvmem_mac_address helper")
    Cc: Mike Looijmans
    Cc: Florian Fainelli
    Cc: Andrew Lunn
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Signed-off-by: Arnd Bergmann
    Acked-by: Mike Looijmans
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • When enable the config item "CONFIG_ARM64_64K_PAGES", the size of PAGE_SIZE
    is 65536(64K). But the type of length is u16, it will overflow. So change it
    to u32.

    Signed-off-by: Tan Xiaojun
    Signed-off-by: David S. Miller

    Tan Xiaojun
     
  • The NSP default buffer is a piece of NFP memory where additional
    command data can be placed. Its format has been copied from
    host buffer, but the PCIe selection bits do not make sense in
    this case. If those get masked out from a NFP address - writes
    to random place in the chip memory may be issued and crash the
    device.

    Even in the general NSP buffer case, it doesn't make sense to have the
    PCIe selection bits there anymore. These are unused at the moment, and
    when it becomes necessary, the PCIe selection bits should rather be
    moved to another register to utilise more bits for the buffer address.

    This has never been an issue because the buffer used to be
    allocated in memory with less-than-38-bit-long address but that
    is about to change.

    Fixes: 1a64821c6af7 ("nfp: add support for service processor access")
    Signed-off-by: Dirk van der Merwe
    Reviewed-by: Jakub Kicinski
    Signed-off-by: David S. Miller

    Dirk van der Merwe
     
  • When using wicked with a lan78xx device attached to the system, we
    end up with ethtool commands issued on the device before an ifup
    got issued. That lead to the following crash:

    Unable to handle kernel NULL pointer dereference at virtual address 0000039c
    pgd = ffff800035b30000
    [0000039c] *pgd=0000000000000000
    Internal error: Oops: 96000004 [#1] SMP
    Modules linked in: [...]
    Supported: Yes
    CPU: 3 PID: 638 Comm: wickedd Tainted: G E 4.12.14-0-default #1
    Hardware name: raspberrypi rpi/rpi, BIOS 2018.03-rc2 02/21/2018
    task: ffff800035e74180 task.stack: ffff800036718000
    PC is at phy_ethtool_ksettings_get+0x20/0x98
    LR is at lan78xx_get_link_ksettings+0x44/0x60 [lan78xx]
    pc : [] lr : [] pstate: 20000005
    sp : ffff80003671bb20
    x29: ffff80003671bb20 x28: ffff800035e74180
    x27: ffff000008912000 x26: 000000000000001d
    x25: 0000000000000124 x24: ffff000008f74d00
    x23: 0000004000114809 x22: 0000000000000000
    x21: ffff80003671bbd0 x20: 0000000000000000
    x19: ffff80003671bbd0 x18: 000000000000040d
    x17: 0000000000000001 x16: 0000000000000000
    x15: 0000000000000000 x14: ffffffffffffffff
    x13: 0000000000000000 x12: 0000000000000020
    x11: 0101010101010101 x10: fefefefefefefeff
    x9 : 7f7f7f7f7f7f7f7f x8 : fefefeff31677364
    x7 : 0000000080808080 x6 : ffff80003671bc9c
    x5 : ffff80003671b9f8 x4 : ffff80002c296190
    x3 : 0000000000000000 x2 : 0000000000000000
    x1 : ffff80003671bbd0 x0 : ffff80003671bc00
    Process wickedd (pid: 638, stack limit = 0xffff800036718000)
    Call trace:
    Exception stack(0xffff80003671b9e0 to 0xffff80003671bb20)
    b9e0: ffff80003671bc00 ffff80003671bbd0 0000000000000000 0000000000000000
    ba00: ffff80002c296190 ffff80003671b9f8 ffff80003671bc9c 0000000080808080
    ba20: fefefeff31677364 7f7f7f7f7f7f7f7f fefefefefefefeff 0101010101010101
    ba40: 0000000000000020 0000000000000000 ffffffffffffffff 0000000000000000
    ba60: 0000000000000000 0000000000000001 000000000000040d ffff80003671bbd0
    ba80: 0000000000000000 ffff80003671bbd0 0000000000000000 0000004000114809
    baa0: ffff000008f74d00 0000000000000124 000000000000001d ffff000008912000
    bac0: ffff800035e74180 ffff80003671bb20 ffff000000dcca84 ffff80003671bb20
    bae0: ffff0000086f7f30 0000000020000005 ffff80002c296000 ffff800035223900
    bb00: 0000ffffffffffff 0000000000000000 ffff80003671bb20 ffff0000086f7f30
    [] phy_ethtool_ksettings_get+0x20/0x98
    [] lan78xx_get_link_ksettings+0x44/0x60 [lan78xx]
    [] ethtool_get_settings+0x68/0x210
    [] dev_ethtool+0x214/0x2180
    [] dev_ioctl+0x400/0x630
    [] sock_do_ioctl+0x70/0x88
    [] sock_ioctl+0x208/0x368
    [] do_vfs_ioctl+0xb0/0x848
    [] SyS_ioctl+0x8c/0xa8
    Exception stack(0xffff80003671bec0 to 0xffff80003671c000)
    bec0: 0000000000000009 0000000000008946 0000fffff4e841d0 0000aa0032687465
    bee0: 0000aaaafa2319d4 0000fffff4e841d4 0000000032687465 0000000032687465
    bf00: 000000000000001d 7f7fff7f7f7f7f7f 72606b622e71ff4c 7f7f7f7f7f7f7f7f
    bf20: 0101010101010101 0000000000000020 ffffffffffffffff 0000ffff7f510c68
    bf40: 0000ffff7f6a9d18 0000ffff7f44ce30 000000000000040d 0000ffff7f6f98f0
    bf60: 0000fffff4e842c0 0000000000000001 0000aaaafa2c2e00 0000ffff7f6ab000
    bf80: 0000fffff4e842c0 0000ffff7f62a000 0000aaaafa2b9f20 0000aaaafa2c2e00
    bfa0: 0000fffff4e84818 0000fffff4e841a0 0000ffff7f5ad0cc 0000fffff4e841a0
    bfc0: 0000ffff7f44ce3c 0000000080000000 0000000000000009 000000000000001d
    bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000

    The culprit is quite simple: The driver tries to access the phy left and right,
    but only actually has a working reference to it when the device is up.

    The fix thus is quite simple too: Get a reference to the phy on probe already
    and keep it even when the device is going down.

    With this patch applied, I can successfully run wicked on my system and bring
    the interface up and down as many times as I want, without getting NULL pointer
    dereferences in between.

    Signed-off-by: Alexander Graf
    Signed-off-by: David S. Miller

    Alexander Graf
     
  • We are currently counting packets with CHECKSUM_COMPLETE as
    "hw_rx_csum_ok". This is confusing. Add a new counter.
    To make sure it fits in the same cacheline move the less used
    error counter to a different location.

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Dirk van der Merwe
    Signed-off-by: David S. Miller

    Jakub Kicinski
     
  • Add a thermal monitoring device for the Marvell 88x3310, which updates
    once a second. We also need to hook into the suspend/resume mechanism
    to ensure that the thermal monitoring is reconfigured when we resume.

    Suggested-by: Andrew Lunn
    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King
     
  • Once dst has been cached in socket via sk_setup_caps(),
    it is illegal to call ip_rt_put() (or dst_release()),
    since sk_setup_caps() did not change dst refcount.

    We can still dereference it since we hold socket lock.

    Caugth by syzbot :

    BUG: KASAN: use-after-free in atomic_dec_return include/asm-generic/atomic-instrumented.h:198 [inline]
    BUG: KASAN: use-after-free in dst_release+0x27/0xa0 net/core/dst.c:185
    Write of size 4 at addr ffff8801c54dc040 by task syz-executor4/20088

    CPU: 1 PID: 20088 Comm: syz-executor4 Not tainted 4.16.0+ #376
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
    __dump_stack lib/dump_stack.c:17 [inline]
    dump_stack+0x1a7/0x27d lib/dump_stack.c:53
    print_address_description+0x73/0x250 mm/kasan/report.c:256
    kasan_report_error mm/kasan/report.c:354 [inline]
    kasan_report+0x23c/0x360 mm/kasan/report.c:412
    check_memory_region_inline mm/kasan/kasan.c:260 [inline]
    check_memory_region+0x137/0x190 mm/kasan/kasan.c:267
    kasan_check_write+0x14/0x20 mm/kasan/kasan.c:278
    atomic_dec_return include/asm-generic/atomic-instrumented.h:198 [inline]
    dst_release+0x27/0xa0 net/core/dst.c:185
    sk_dst_set include/net/sock.h:1812 [inline]
    sk_dst_reset include/net/sock.h:1824 [inline]
    sock_setbindtodevice net/core/sock.c:610 [inline]
    sock_setsockopt+0x431/0x1b20 net/core/sock.c:707
    SYSC_setsockopt net/socket.c:1845 [inline]
    SyS_setsockopt+0x2ff/0x360 net/socket.c:1828
    do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
    entry_SYSCALL_64_after_hwframe+0x42/0xb7
    RIP: 0033:0x4552d9
    RSP: 002b:00007f4878126c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000036
    RAX: ffffffffffffffda RBX: 00007f48781276d4 RCX: 00000000004552d9
    RDX: 0000000000000019 RSI: 0000000000000001 RDI: 0000000000000013
    RBP: 000000000072bea0 R08: 0000000000000010 R09: 0000000000000000
    R10: 00000000200010c0 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 0000000000000526 R14: 00000000006fac30 R15: 0000000000000000

    Allocated by task 20088:
    save_stack+0x43/0xd0 mm/kasan/kasan.c:447
    set_track mm/kasan/kasan.c:459 [inline]
    kasan_kmalloc+0xad/0xe0 mm/kasan/kasan.c:552
    kasan_slab_alloc+0x12/0x20 mm/kasan/kasan.c:489
    kmem_cache_alloc+0x12e/0x760 mm/slab.c:3542
    dst_alloc+0x11f/0x1a0 net/core/dst.c:104
    rt_dst_alloc+0xe9/0x540 net/ipv4/route.c:1520
    __mkroute_output net/ipv4/route.c:2265 [inline]
    ip_route_output_key_hash_rcu+0xa49/0x2c60 net/ipv4/route.c:2493
    ip_route_output_key_hash+0x20b/0x370 net/ipv4/route.c:2322
    __ip_route_output_key include/net/route.h:126 [inline]
    ip_route_output_flow+0x26/0xa0 net/ipv4/route.c:2577
    ip_route_output_ports include/net/route.h:163 [inline]
    pptp_connect+0xa84/0x1170 drivers/net/ppp/pptp.c:453
    SYSC_connect+0x213/0x4a0 net/socket.c:1639
    SyS_connect+0x24/0x30 net/socket.c:1620
    do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
    entry_SYSCALL_64_after_hwframe+0x42/0xb7

    Freed by task 20082:
    save_stack+0x43/0xd0 mm/kasan/kasan.c:447
    set_track mm/kasan/kasan.c:459 [inline]
    __kasan_slab_free+0x11a/0x170 mm/kasan/kasan.c:520
    kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:527
    __cache_free mm/slab.c:3486 [inline]
    kmem_cache_free+0x83/0x2a0 mm/slab.c:3744
    dst_destroy+0x266/0x380 net/core/dst.c:140
    dst_destroy_rcu+0x16/0x20 net/core/dst.c:153
    __rcu_reclaim kernel/rcu/rcu.h:178 [inline]
    rcu_do_batch kernel/rcu/tree.c:2675 [inline]
    invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
    __rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
    rcu_process_callbacks+0xd6c/0x17b0 kernel/rcu/tree.c:2914
    __do_softirq+0x2d7/0xb85 kernel/softirq.c:285

    The buggy address belongs to the object at ffff8801c54dc000
    which belongs to the cache ip_dst_cache of size 168
    The buggy address is located 64 bytes inside of
    168-byte region [ffff8801c54dc000, ffff8801c54dc0a8)
    The buggy address belongs to the page:
    page:ffffea0007153700 count:1 mapcount:0 mapping:ffff8801c54dc000 index:0x0
    flags: 0x2fffc0000000100(slab)
    raw: 02fffc0000000100 ffff8801c54dc000 0000000000000000 0000000100000010
    raw: ffffea0006b34b20 ffffea0006b6c1e0 ffff8801d674a1c0 0000000000000000
    page dumped because: kasan: bad access detected

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • We would be passing 0 instead of NULL as the rsp argument to
    mt7530_fdb_cmd(), fix that.

    Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
    Signed-off-by: Florian Fainelli
    Acked-by: Sean Wang
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • sparse complains about the following warnings:

    drivers/net/dsa/b53/b53_mmap.c:33:31: warning: incorrect type in
    initializer (different address spaces)
    drivers/net/dsa/b53/b53_mmap.c:33:31: expected unsigned char
    [noderef] [usertype] *regs
    drivers/net/dsa/b53/b53_mmap.c:33:31: got void *priv

    and indeed, while what we are doing is functional, we are dereferencing
    a void * pointer into a void __iomem * which is not great. Just use the
    defined b53_mmap_priv structure which holds our register base and use
    that.

    Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • skb->protocol is a __be16 which we would be calling htons() against,
    while this is not wrong per-se as it correctly results in swapping the
    value on LE hosts, this still upsets sparse. Adopt a similar pattern to
    what other drivers do and just assign ip_ver to skb->protocol, and then
    use htons() against the different constants such that the compiler can
    resolve the values at build time.

    Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • skb->protocol is a __be16 which we would be calling htons() against,
    while this is not wrong per-se as it correctly results in swapping the
    value on LE hosts, this still upsets sparse. Adopt a similar pattern to
    what other drivers do and just assign ip_ver to skb->protocol, and then
    use htons() against the different constants such that the compiler can
    resolve the values at build time.

    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Pull libata updates from Tejun Heo:
    "Nothing too interesting.

    The biggest change is refcnting fix for ata_host - the bug is recent
    and can only be triggered on controller hotplug, so very few are
    hitting it.

    There also are a number of trivial license / error message changes and
    some hardware specific changes"

    * 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (23 commits)
    ahci: imx: add the imx8qm ahci sata support
    libata: ensure host is free'd on error exit paths
    ata: ahci-platform: add reset control support
    ahci: imx: fix the build warning
    ata: add Amiga Gayle PATA controller driver
    ahci: imx: add the imx6qp ahci sata support
    ata: change Tegra124 to Tegra
    ata: ahci_tegra: Add AHCI support for Tegra210
    ata: ahci_tegra: disable DIPM
    ata: ahci_tegra: disable devslp for Tegra124
    ata: ahci_tegra: initialize regulators from soc struct
    ata: ahci_tegra: Update initialization sequence
    dt-bindings: Tegra210: add binding documentation
    libata: add refcounting to ata_host
    pata_bk3710: clarify license version and use SPDX header
    pata_falcon: clarify license version and use SPDX header
    pata_it821x: Delete an error message for a failed memory allocation in it821x_firmware_command()
    pata_macio: Delete an error message for a failed memory allocation in two functions
    pata_mpc52xx: Delete an error message for a failed memory allocation in mpc52xx_ata_probe()
    sata_dwc_460ex: Delete an error message for a failed memory allocation in sata_dwc_port_start()
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:

    - new CEC pin injection code for testing purposes

    - DVB frontend cxd2099 promoted from staging

    - new platform driver for Sony cxd2880 DVB devices

    - new sensor drivers: mt9t112, ov2685, ov5695, ov772x, tda1997x,
    tw9910.c

    - removal of unused cx18 and ivtv alsa mixers

    - the reneseas-ceu driver doesn't depend on soc_camera anymore and
    moved from staging

    - removed the mantis_vp3028 driver, unused since 2009

    - s5p-mfc: add support for version 10 of the MSP

    - added a decoder for imon protocol

    - atomisp: lots of cleanups

    - imx074 and mt9t031: don't depend on soc_camera anymore, being
    promoted from staging

    - added helper functions to better support DVB I2C binding

    - lots of driver improvements and cleanups

    * tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (438 commits)
    media: v4l2-ioctl: rename a temp var that stores _IOC_SIZE(cmd)
    media: fimc-capture: get rid of two warnings
    media: dvb-usb-v2: fix a missing dependency of I2C_MUX
    media: uvc: to the right check at uvc_ioctl_enum_framesizes()
    media: cec-core: fix a bug at cec_error_inj_write()
    media: tda9840: cleanup a warning
    media: tm6000: avoid casting just to print pointer address
    media: em28xx-input: improve error handling code
    media: zr364xx: avoid casting just to print pointer address
    media: vivid-radio-rx: add a cast to avoid a warning
    media: saa7134-alsa: don't use casts to print a buffer address
    media: solo6x10: get rid of an address space warning
    media: zoran: don't cast pointers to print them
    media: ir-kbd-i2c: change the if logic to avoid a warning
    media: ir-kbd-i2c: improve error handling code
    media: saa7134-input: improve error handling
    media: s2255drv: fix a casting warning
    media: ivtvfb: Cleanup some warnings
    media: videobuf-dma-sg: Fix a weird cast
    soc_camera: fix a weird cast on printk
    ...

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - add a shell script to get Clang version

    - improve portability of build scripts

    - drop always-enabled CONFIG_THIN_ARCHIVE and remove unused code

    - rename built-in.o which is now thin archive to built-in.a

    - process clean/build targets one by one to get along with -j option

    - simplify ld-option

    - improve building with CONFIG_TRIM_UNUSED_KSYMS

    - define KBUILD_MODNAME even for objects shared among multiple modules

    - avoid linking multiple instances of same objects from composite
    objects

    - move to c_flags to include it only for C
    files

    - clean-up various Makefiles

    * tag 'kbuild-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (29 commits)
    kbuild: get out of
    kbuild: clean up link rule of composite modules
    kbuild: clean up archive rule of built-in.a
    kbuild: remove partial section mismatch detection for built-in.a
    net: liquidio: clean up Makefile for simpler composite object handling
    lib: zstd: clean up Makefile for simpler composite object handling
    kbuild: link $(real-obj-y) instead of $(obj-y) into built-in.a
    kbuild: rename real-objs-y/m to real-obj-y/m
    kbuild: move modname and modname-multi close to modname_flags
    kbuild: simplify modname calculation
    kbuild: fix modname for composite modules
    kbuild: define KBUILD_MODNAME even if multiple modules share objects
    kbuild: remove unnecessary $(subst $(obj)/, , ...) in modname-multi
    kbuild: Use ls(1) instead of stat(1) to obtain file size
    kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS
    kbuild: move include/config/ksym/* to include/ksym/*
    kbuild: move CONFIG_TRIM_UNUSED_KSYMS code unneeded for external module
    kbuild: restore autoksyms.h touch to the top Makefile
    kbuild: move 'scripts' target below
    kbuild: remove wrong 'touch' in adjust_autoksyms.sh
    ...

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:
    "Lots of small enhancements and fixes in this patchset:

    - improved the x86-64 compatibility for PCI cards by returning -1UL
    for timed out MMIO transactions (instead of crashing)

    - fixed HPMC handler for PAT machines: size needs to be multiple of 16

    - prepare machine_power_off() to be able to turn rp3410 and c8000
    machines off via IMPI

    - added code to extract machine info for usage with qemu

    - some init sections fixes

    - lots of fixes for sparse-, ubsan- and uninitalized variables
    warnings"

    * 'parisc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Fix out of array access in match_pci_device()
    parisc: Add code generator for Qemu/SeaBIOS machine info
    parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
    parisc: Fix HPMC handler by increasing size to multiple of 16 bytes
    parisc: Directly call machine_power_off() in power button driver
    parisc: machine_power_off() should call pm_power_off()
    parisc/Kconfig: SMP kernels boot on all machines
    parisc: Silence uninitialized variable warning in dbl_to_sgl_fcnvff()
    parisc: Move various functions and strings to init section
    parisc: Convert MAP_TYPE to cover 4 bits on parisc
    parisc: Force to various endian types for sparse
    parisc/gscps2: Fix sparse warnings
    parisc/led: Fix sparse warnings
    parisc/parport_gsc: Use NULL to avoid sparse warning
    parisc/stifb: Use fb_memset() to avoid sparse warning

    Linus Torvalds
     
  • Pull sparc updates from David Miller:

    1) Add support for ADI (Application Data Integrity) found in more
    recent sparc64 cpus. Essentially this is keyed based access to
    virtual memory, and if the key encoded in the virual address is
    wrong you get a trap.

    The mm changes were reviewed by Andrew Morton and others.

    Work by Khalid Aziz.

    2) Validate DAX completion index range properly, from Rob Gardner.

    3) Add proper Kconfig deps for DAX driver. From Guenter Roeck.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
    sparc64: Make atomic_xchg() an inline function rather than a macro.
    sparc64: Properly range check DAX completion index
    sparc: Make auxiliary vectors for ADI available on 32-bit as well
    sparc64: Oracle DAX driver depends on SPARC64
    sparc64: Update signal delivery to use new helper functions
    sparc64: Add support for ADI (Application Data Integrity)
    mm: Allow arch code to override copy_highpage()
    mm: Clear arch specific VM flags on protection change
    mm: Add address parameter to arch_validate_prot()
    sparc64: Add auxiliary vectors to report platform ADI properties
    sparc64: Add handler for "Memory Corruption Detected" trap
    sparc64: Add HV fault type handlers for ADI related faults
    sparc64: Add support for ADI register fields, ASIs and traps
    mm, swap: Add infrastructure for saving page metadata on swap
    signals, sparc: Add signal codes for ADI violations

    Linus Torvalds
     
  • Pull networking updates from David Miller:

    1) Support offloading wireless authentication to userspace via
    NL80211_CMD_EXTERNAL_AUTH, from Srinivas Dasari.

    2) A lot of work on network namespace setup/teardown from Kirill Tkhai.
    Setup and cleanup of namespaces now all run asynchronously and thus
    performance is significantly increased.

    3) Add rx/tx timestamping support to mv88e6xxx driver, from Brandon
    Streiff.

    4) Support zerocopy on RDS sockets, from Sowmini Varadhan.

    5) Use denser instruction encoding in x86 eBPF JIT, from Daniel
    Borkmann.

    6) Support hw offload of vlan filtering in mvpp2 dreiver, from Maxime
    Chevallier.

    7) Support grafting of child qdiscs in mlxsw driver, from Nogah
    Frankel.

    8) Add packet forwarding tests to selftests, from Ido Schimmel.

    9) Deal with sub-optimal GSO packets better in BBR congestion control,
    from Eric Dumazet.

    10) Support 5-tuple hashing in ipv6 multipath routing, from David Ahern.

    11) Add path MTU tests to selftests, from Stefano Brivio.

    12) Various bits of IPSEC offloading support for mlx5, from Aviad
    Yehezkel, Yossi Kuperman, and Saeed Mahameed.

    13) Support RSS spreading on ntuple filters in SFC driver, from Edward
    Cree.

    14) Lots of sockmap work from John Fastabend. Applications can use eBPF
    to filter sendmsg and sendpage operations.

    15) In-kernel receive TLS support, from Dave Watson.

    16) Add XDP support to ixgbevf, this is significant because it should
    allow optimized XDP usage in various cloud environments. From Tony
    Nguyen.

    17) Add new Intel E800 series "ice" ethernet driver, from Anirudh
    Venkataramanan et al.

    18) IP fragmentation match offload support in nfp driver, from Pieter
    Jansen van Vuuren.

    19) Support XDP redirect in i40e driver, from Björn Töpel.

    20) Add BPF_RAW_TRACEPOINT program type for accessing the arguments of
    tracepoints in their raw form, from Alexei Starovoitov.

    21) Lots of striding RQ improvements to mlx5 driver with many
    performance improvements, from Tariq Toukan.

    22) Use rhashtable for inet frag reassembly, from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1678 commits)
    net: mvneta: improve suspend/resume
    net: mvneta: split rxq/txq init and txq deinit into SW and HW parts
    ipv6: frags: fix /proc/sys/net/ipv6/ip6frag_low_thresh
    net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
    net: bgmac: Correctly annotate register space
    route: check sysctl_fib_multipath_use_neigh earlier than hash
    fix typo in command value in drivers/net/phy/mdio-bitbang.
    sky2: Increase D3 delay to sky2 stops working after suspend
    net/mlx5e: Set EQE based as default TX interrupt moderation mode
    ibmvnic: Disable irqs before exiting reset from closed state
    net: sched: do not emit messages while holding spinlock
    vlan: also check phy_driver ts_info for vlan's real device
    Bluetooth: Mark expected switch fall-throughs
    Bluetooth: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for BTUSB_QCA_ROME
    Bluetooth: btrsi: remove unused including
    Bluetooth: hci_bcm: Remove DMI quirk for the MINIX Z83-4
    sh_eth: kill useless check in __sh_eth_get_regs()
    sh_eth: add sh_eth_cpu_data::no_xdfar flag
    ipv6: factorize sk_wmem_alloc updates done by __ip6_append_data()
    ipv4: factorize sk_wmem_alloc updates done by __ip_append_data()
    ...

    Linus Torvalds
     
  • ….anaszewski/linux-leds

    Pull LED updates from Jacek Anaszewski:
    "New LED class driver:
    - add driver for Mellanox regmap LEDs

    Improvement to ledtrig-disk:
    - extend disk trigger for reads and writes

    Improvements and fixes to existing LED class drivers:
    - add more product/board names for PC Engines APU2
    - fix wrong dmi_match on PC Engines APU LEDs
    - clarify chips supported by LM355x driver
    - fix Kconfig text for MLXCPLD, SYSCON, MC13783, NETXBIG
    - allow leds-mlxcpld compilation for 32 bit arch"

    * tag 'leds_for_4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    leds: Fix wrong dmi_match on PC Engines APU LEDs
    leds: Extends disk trigger for reads and writes
    leds: Add more product/board names for PC Engines APU2
    leds: add driver for support Mellanox regmap LEDs for BMC and x86 platform
    leds: fix Kconfig text for MLXCPLD, SYSCON, MC13783, NETXBIG
    leds: Clarify supported chips by LM355x driver
    leds: leds-mlxcpld: Allow compilation for 32 bit arch

    Linus Torvalds
     
  • Pull IPMI updates from Corey Minyard:
    "Mostly small changes, as usual.

    This does add an IPMI BMC server-side driver, to allow a Linux system
    to act as an IPMI controller. That's the biggest change, but it is
    just a new driver that is fairly narrow in use.

    The other largish change is removing ACPI SPMI probe support, which
    should have never really been there in the beginning"

    * tag 'for-linus-4.17' of git://github.com/cminyard/linux-ipmi:
    ipmi/parisc: Add IPMI chassis poweroff for certain HP PA-RISC and IA-64 servers
    ipmi_ssif: Fix kernel panic at msg_done_handler
    ipmi:pci: Blacklist a Realtek "IPMI" device
    ipmi: Remove ACPI SPMI probing from the system interface driver
    ipmi: Remove ACPI SPMI probing from the SSIF (I2C) driver
    ipmi: missing error code in try_smi_init()
    ipmi: use ARRAY_SIZE for poweroff_functions array sizing calculation
    ipmi: Consolidate cleanup code
    ipmi: Remove some unnecessary initializations
    ipmi: Fix some error cleanup issues
    ipmi: Add or fix SPDX-License-Identifier in all files
    ipmi: Re-use existing macros for built-in properties
    ipmi:pci: Make the PCI defines consistent with normal Linux ones
    ipmi: kcs_bmc: coding-style fixes and use new poll type
    char/ipmi: add documentation for sysfs interface
    ipmi: kcs_bmc: mark expected switch fall-through in kcs_bmc_handle_data
    ipmi: add an Aspeed KCS IPMI BMC driver
    ipmi: add a KCS IPMI BMC driver

    Linus Torvalds
     
  • Pull pin control bulk updates from Linus Walleij:
    "New drivers:

    - Qualcomm SDM845: this is their new flagship SoC platform which
    seems to be targeted at premium mobile handsets.

    - Renesas R-Car M3-N SoC.

    - Renesas R8A77980 SoC.

    - NXP (ex Freescale) i.MX 6SLL SoC.

    - Mediatek MT2712 SoC.

    - Allwinner H6 SoC.

    Improvements:

    - Uniphier adds a few new functions and pins.

    - Renesas refactorings and additional pin definitions.

    - Improved pin groups for Axis Artpec6.

    Cleanup:

    - Drop the TZ1090 drivers. This platform is no longer maintained and
    is being deleted.

    - Drop ST-Ericsson U8540/U9540 support as this was never
    productified.

    - Overall minor fixes and janitorial"

    * tag 'pinctrl-v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (82 commits)
    pinctrl: uniphier: add UART hardware flow control pin-mux settings
    pinctrl: sunxi: add support for the Allwinner H6 main pin controller
    pinctrl: sunxi: change irq_bank_base to irq_bank_map
    pinctrl: sunxi: introduce IRQ bank conversion function
    pinctrl: sunxi: refactor irq related register function to have desc
    pinctrl: msm8998: Remove owner assignment from platform_driver
    pinctrl: uniphier: divide I2S and S/PDIF audio out pin-mux group
    pinctrl: uniphier: add PXs2 Audio in/out pin-mux settings
    pinctrl/amd: poll InterruptEnable bits in enable_irq
    pinctrl: ocelot: fix gpio direction
    pinctrl: mtk: fix check warnings.
    pintcrl: mtk: support bias-disable of generic and special pins simultaneously
    pinctrl: add mt2712 pinctrl driver
    pinctrl: pinctrl-single: Fix pcs_request_gpio() when bits_per_mux != 0
    pinctrl: imx: Add pinctrl driver support for imx6sll
    dt-bindings: imx: update pinctrl doc for imx6sll
    pinctrl: intel: Implement intel_gpio_get_direction callback
    pinctrl: stm32: add 'depends on HAS_IOMEM' to fix unmet dependency
    pinctrl: mediatek: mtk-common: use true and false for boolean values
    pinctrl: sunxi: always look for apb block
    ...

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "MMC core:
    - Export host capabilities through debugfs
    - Export card RCA register via sysfs
    - Improve card initializing sequence while enabling 4-bit bus
    - Export a function to enable/disable wakeup for card detect IRQ

    MMC host:
    - dw_mmc: Add support for new hi3798cv200 variant
    - dw_mmc: Remove support for some deprecated DT properties
    - mediatek: Add support for new variant used on MT7622 SoC
    - sdhci: Improve wakeup support for SDIO IRQs
    - sdhci: Improve wakeup support for card detect IRQs
    - sdhci-omap: Add tuning support
    - sdhci_omap: Add UHS-I mode support
    - sunxi: Prepare for runtime PM support via a few re-factorings
    - tmio: deprecate "toshiba,mmc-wrprotect-disable" DT property
    - tmio/renesas_sdhi: Consolidate code supporting write protect
    - tmio: Improve DMA vs PIO handling
    - tmio: Add support for IP-builtin card detection logic"

    * tag 'mmc-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (55 commits)
    mmc: renesas_sdhi: replace EXT_ACC with HOST_MODE
    mmc: update sdio_claim_irq documentation
    mmc: Export host capabilities to debugfs.
    mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards
    mmc: block: fix updating ext_csd caches on ioctl call
    mmc: sunxi: Set our device drvdata earlier
    mmc: sunxi: Move the reset deassertion before enabling the clocks
    mmc: sunxi: Move resources management to separate functions
    mmc: dw_mmc: add support for hi3798cv200 specific extensions of dw-mshc
    dt-bindings: mmc: add bindings for hi3798cv200-dw-mshc
    mmc: core: Export card RCA register via sysfs
    mmc: renesas_sdhi: fix WP detection
    mmc: core: Use memdup_user() rather than duplicating its implementation
    mmc: dw_mmc-rockchip: correct property names in debug
    mmc: sd: Remove redundant err assignment from mmc_read_switch
    mmc: sdio: Check the return value of sdio_enable_4bit_bus
    mmc: core: Don't try UHS-I mode if 4-bit mode isn't supported
    arm64: dts: hi3660: remove 'num-slots' property for dwmmc
    ARM: dts: lpc18xx: remove 'num-slots' property for dwmmc
    arm64: dts: stratix10: remove 'num-slots' property for dwmmc
    ...

    Linus Torvalds
     
  • Pull HSI updates from Sebastian Reichel:

    - spelling/typo fixes

    - remove extra error printing for -ENOMEM

    * tag 'hsi-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
    HSI: hsi_char: Delete an error message for a failed memory allocation in hsc_probe()
    HSI: ssi_protocol: fix spelling mistake: "trigerred" -> "triggered"
    HSI: ssi_protocol: Delete an error message for a failed memory allocation in ssi_protocol_probe()
    HSI: ssi_protocol: Fix a typo in two comment lines

    Linus Torvalds
     
  • Pull power supply and reset updates from Sebastian Reichel:

    - Microsemi Ocelot reset support

    - Spreadtrum SC27xx reset support

    - generic gpio charger: lot's of cleanups

    - axp20x fuel gauge: add AXP813 support

    - misc fixes, including one devicetree change for the Nokia N900, that
    has been Acked-by Tony Lindgren

    * tag 'for-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (27 commits)
    power: reset: at91-reset: Switch from the pr_*() to the dev_*() logging functions
    power: reset: at91-poweroff: Remove redundant dev_err call in at91_poweroff_probe()
    power: reset: at91-poweroff: Switch from the pr_*() to the dev_*() logging functions
    power: reset: make function sc27xx_poweroff_shutdown static
    power: supply: da9150-fg: remove VLA usage
    ARM: dts: omap3-n900: Add link between battery and charger
    power: supply: bq2415x: add DT referencing support
    power: supply: bq27xxx: support missing supplier device
    max17042: propagate of_node to power supply device
    power: supply: axp288_fuel_gauge: Fix full status reporting
    power: supply: axp288_fuel_gauge: Do not register FG on ECS EF20EA
    power: reset: gpio-poweroff: Support for timeout from device property
    dt-bindings: power: reset: gpio-poweroff: Add 'timeout-ms' property
    power: reset: Add Spreadtrum SC27xx PMIC power off support
    power: supply: axp20x_battery: add support for AXP813
    dt-bindings: power: supply: axp20x: add AXP813 battery DT binding
    power: supply: axp20x_battery: use data struct for variant specific code
    power: supply: gpio-charger: Remove pdata from gpio_charger
    power: supply: gpio-charger: Use GPIOF_ACTIVE_LOW for legacy setup
    power: supply: gpio-charger: Remove redundant dev_err call in probe function
    ...

    Linus Torvalds
     
  • Pull SPI updates from Mark Brown:
    "A quiet release for SPI, some fixes and small updates for individual
    drivers with one bigger change from Linus Walleij which coverts the
    bitbanging SPI driver to use the GPIO descriptor API from Linus
    Walleij.

    Since GPIO descriptors were used by platform data this means there's a
    few changes in arch/ making relevant updates for a few platforms and
    one misc driver that are affected"

    * tag 'spi-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (24 commits)
    MAINTAINERS: update Andi's e-mail
    spi: spi-atmel: Use correct enum for DMA transfer direction
    spi: sh-msiof: Document R-Car M3-N support
    spi: sh-msiof: Use correct enum for DMA transfer direction
    spi: sprd: Add the support of restarting the system
    spi: sprd: Simplify the transfer function
    spi: Fix unregistration of controller with fixed SPI bus number
    spi: rspi: use correct enum for DMA transfer direction
    spi: jcore: disable ref_clk after getting its rate
    spi: bcm-qspi: fIX some error handling paths
    spi: pxa2xx: Disable runtime PM if controller registration fails
    spi: tegra20-slink: use true and false for boolean values
    spi: Fix scatterlist elements size in spi_map_buf
    spi: atmel: init FIFOs before spi enable
    spi: orion: Prepare space for per-child options
    spi: orion: Make the error message greppable
    spi: orion: Rework GPIO CS handling
    spi: bcm2835aux: Avoid 64-bit arithmetic in xfer len calc
    spi: spi-gpio: Augment device tree bindings
    spi: spi-gpio: Rewrite to use GPIO descriptors
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "A very small set of updates for the regulator API this time around,
    there's a few bug fixes and also:

    - Conversion of the regulator API to use GPIO descriptors rather than
    numbers from Linus Walleij.

    - New drivers for Marvell 88PG86x and Qualcomm PM8998 and PMI8998"

    * tag 'regulator-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: qcom: smd: Add pm8998 and pmi8998 regulators
    regulator: core: Add missing blank line between functions
    regulator: qcom_smd: Drop regulator/{machine,of_regulator} includes
    regulator: giving regulator controlling gpios a non-empty label when used through the devicetree.
    regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()'
    regulator: 88pg86x: new i2c dual regulator chip
    regulator: 88pg86x: add DT bindings document
    regulator: da9211: Pass descriptors instead of GPIO numbers
    regulator: da9055: Pass descriptor instead of GPIO number
    regulator: core: Support passing an initialized GPIO enable descriptor
    regulator: dt: regulator-name is required property
    regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "This is a fairly large set of updates for regmap, mainly bugfixes.

    The biggest bit of this is some fixes for the bulk operations code
    which had issues in some use cases, Charles Keepax has sorted them
    out. We also gained the ability to use debugfs with syscon regmaps and
    to specify the clock to be used with MMIO regmaps"

    * tag 'regmap-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (21 commits)
    regmap: debugfs: Improve warning message on debugfs_create_dir() failure
    regmap: debugfs: Free map->debugfs_name when debugfs_create_dir() failed
    regmap: debugfs: Don't leak dummy names
    regmap: debugfs: Disambiguate dummy debugfs file name
    regmap: mmio: Add function to attach a clock
    regmap: Merge redundant handling in regmap_bulk_write
    regmap: Tidy up regmap_raw_write chunking code
    regmap: Move the handling for max_raw_write into regmap_raw_write
    regmap: Remove unnecessary printk for failed allocation
    regmap: Format data for raw write in regmap_bulk_write
    regmap: use debugfs even when no device
    regmap: Allow missing device in regmap_name_read_file()
    regmap: Use _regmap_read in regmap_bulk_read
    regmap: Tidy up regmap_raw_read chunking code
    regmap: Move the handling for max_raw_read into regmap_raw_read
    regmap: Use helper function for register offset
    regmap: Don't use format_val in regmap_bulk_read
    regmap: Correct comparison in regmap_cached
    regmap: Correct offset handling in regmap_volatile_range
    regmap-i2c: Off by one in regmap_i2c_smbus_i2c_read/write()
    ...

    Linus Torvalds