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 ext4 updates from Ted Ts'o:
    "Cleanups and bugfixes for ext4, including some fixes to make ext4 more
    robust against maliciously crafted file system images.

    (I still don't recommend that container folks hold any delusions that
    mounting arbitary images that can be crafted by malicious attackers
    should be considered sane thing to do, though!)"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (29 commits)
    ext4: force revalidation of directory pointer after seekdir(2)
    ext4: add extra checks to ext4_xattr_block_get()
    ext4: add bounds checking to ext4_xattr_find_entry()
    ext4: move call to ext4_error() into ext4_xattr_check_block()
    ext4: don't show data= option if defaulted
    ext4: omit init_itable=n in procfs when disabled
    ext4: show more binary mount options in procfs
    ext4: simplify kobject usage
    ext4: remove unused parameters in sysfs code
    ext4: null out kobject* during sysfs cleanup
    ext4: don't allow r/w mounts if metadata blocks overlap the superblock
    ext4: always initialize the crc32c checksum driver
    ext4: fail ext4_iget for root directory if unallocated
    ext4: limit xattr size to INT_MAX
    ext4: add validity checks for bitmap block numbers
    ext4: fix comments in ext4_swap_extents()
    ext4: use generic_writepages instead of __writepage/write_cache_pages
    ext4: don't complain about incorrect features when probing
    ext4: remove EXT4_STATE_DIOREAD_LOCK flag
    ext4: fix offset overflow on 32-bit archs in ext4_iomap_begin()
    ...

    Linus Torvalds
     
  • Pull btrfs updates from David Sterba:
    "There are a several user visible changes, the rest is mostly invisible
    and continues to clean up the whole code base.

    User visible changes:
    - new mount option nossd_spread (pair for ssd_spread)

    - mount option subvolid will detect junk after the number and fail
    the mount

    - add message after cancelled device replace

    - direct module dependency on libcrc32, removed own crc wrappers

    - removed user space transaction ioctls

    - use lighter locking when reading /proc/self/mounts, RCU instead of
    mutex to avoid unnecessary contention

    Enhancements:
    - skip writeback of last page when truncating file to same size

    - send: do not issue unnecessary truncate operations

    - mount option token specifiers: use %u for unsigned values, more
    validation

    - selftests: more tree block validations

    qgroups:
    - preparatory work for splitting reservation types for data and
    metadata, this should allow for more accurate tracking and fix some
    issues with underflows or do further enhancements

    - split metadata reservations for started and joined transaction so
    they do not get mixed up and are accounted correctly at commit time

    - with the above, it's possible to revert patch that potentially
    deadlocks when trying to make more space by explicitly committing
    when the quota limit is hit

    - fix root item corruption when multiple same source snapshots are
    created with quota enabled

    RAID56:
    - make sure target is identical to source when raid56 rebuild fails
    after dev-replace

    - faster rebuild during scrub, batch by stripes and not
    block-by-block

    - make more use of cached data when rebuilding from a missing device

    Fixes:
    - null pointer deref when device replace target is missing

    - fix fsync after hole punching when using no-holes feature

    - fix lockdep splat when allocating percpu data with wrong GFP flags

    Cleanups, refactoring, core changes:
    - drop redunant parameters from various functions

    - kill and opencode trivial helpers

    - __cold/__exit function annotations

    - dead code removal

    - continued audit and documentation of memory barriers

    - error handling: handle removal from uuid tree

    - error handling: remove handling of impossible condtitons

    - more debugging or error messages

    - updated tracepoints

    - one VLA use removal (and one still left)"

    * tag 'for-4.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (164 commits)
    btrfs: lift errors from add_extent_changeset to the callers
    Btrfs: print error messages when failing to read trees
    btrfs: user proper type for btrfs_mask_flags flags
    btrfs: split dev-replace locking helpers for read and write
    btrfs: remove stale comments about fs_mutex
    btrfs: use RCU in btrfs_show_devname for device list traversal
    btrfs: update barrier in should_cow_block
    btrfs: use lockdep_assert_held for mutexes
    btrfs: use lockdep_assert_held for spinlocks
    btrfs: Validate child tree block's level and first key
    btrfs: tests/qgroup: Fix wrong tree backref level
    Btrfs: fix copy_items() return value when logging an inode
    Btrfs: fix fsync after hole punching when using no-holes feature
    btrfs: use helper to set ulist aux from a qgroup
    Revert "btrfs: qgroups: Retry after commit on getting EDQUOT"
    btrfs: qgroup: Update trace events for metadata reservation
    btrfs: qgroup: Use root::qgroup_meta_rsv_* to record qgroup meta reserved space
    btrfs: delayed-inode: Use new qgroup meta rsv for delayed inode and item
    btrfs: qgroup: Use separate meta reservation type for delalloc
    btrfs: qgroup: Introduce function to convert META_PREALLOC into META_PERTRANS
    ...

    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
     

04 Apr, 2018

19 commits

  • Add 'connected' parameter to ip6_sk_dst_lookup_flow() and update
    the cache only if ip6_sk_dst_check() returns NULL and a socket
    is connected.

    The function is used as before, the new behavior for UDP sockets
    in udpv6_sendmsg() will be enabled in the next patch.

    Signed-off-by: Alexey Kodanev
    Signed-off-by: David S. Miller

    Alexey Kodanev
     
  • Move commonly used pattern of ip6_dst_store() usage to a separate
    function - ip6_sk_dst_store_flow(), which will check the addresses
    for equality using the flow information, before saving them.

    There is no functional changes in this patch. In addition, it will
    be used in the next patch, in ip6_sk_dst_lookup_flow().

    Signed-off-by: Alexey Kodanev
    Signed-off-by: David S. Miller

    Alexey Kodanev
     
  • Al Viro
     
  • Pull namespace updates from Eric Biederman:
    "There was a lot of work this cycle fixing bugs that were discovered
    after the merge window and getting everything ready where we can
    reasonably support fully unprivileged fuse. The bug fixes you already
    have and much of the unprivileged fuse work is coming in via other
    trees.

    Still left for fully unprivileged fuse is figuring out how to cleanly
    handle .set_acl and .get_acl in the legacy case, and properly handling
    of evm xattrs on unprivileged mounts.

    Included in the tree is a cleanup from Alexely that replaced a linked
    list with a statically allocated fix sized array for the pid caches,
    which simplifies and speeds things up.

    Then there is are some cleanups and fixes for the ipc namespace. The
    motivation was that in reviewing other code it was discovered that
    access ipc objects from different pid namespaces recorded pids in such
    a way that when asked the wrong pids were returned. In the worst case
    there has been a measured 30% performance impact for sysvipc
    semaphores. Other test cases showed no measurable performance impact.
    Manfred Spraul and Davidlohr Bueso who tend to work on sysvipc
    performance both gave the nod that this is good enough.

    Casey Schaufler and James Morris have given their approval to the LSM
    side of the changes.

    I simplified the types and the code dealing with sysvipc to pass just
    kern_ipc_perm for all three types of ipc. Which reduced the header
    dependencies throughout the kernel and simplified the lsm code.

    Which let me work on the pid fixes without having to worry about
    trivial changes causing complete kernel recompiles"

    * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    ipc/shm: Fix pid freeing.
    ipc/shm: fix up for struct file no longer being available in shm.h
    ipc/smack: Tidy up from the change in type of the ipc security hooks
    ipc: Directly call the security hook in ipc_ops.associate
    ipc/sem: Fix semctl(..., GETPID, ...) between pid namespaces
    ipc/msg: Fix msgctl(..., IPC_STAT, ...) between pid namespaces
    ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
    ipc/util: Helpers for making the sysvipc operations pid namespace aware
    ipc: Move IPCMNI from include/ipc.h into ipc/util.h
    msg: Move struct msg_queue into ipc/msg.c
    shm: Move struct shmid_kernel into ipc/shm.c
    sem: Move struct sem and struct sem_array into ipc/sem.c
    msg/security: Pass kern_ipc_perm not msg_queue into the msg_queue security hooks
    shm/security: Pass kern_ipc_perm not shmid_kernel into the shm security hooks
    sem/security: Pass kern_ipc_perm not sem_array into the sem security hooks
    pidns: simpler allocation of pid_* caches

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "rcu_work addition and a couple trivial changes"

    * 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: remove the comment about the old manager_arb mutex
    workqueue: fix the comments of nr_idle
    fs/aio: Use rcu_work instead of explicit rcu and work item
    cgroup: Use rcu_work instead of explicit rcu and work item
    RCU, workqueue: Implement rcu_work

    Linus Torvalds
     
  • 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 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 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
     
  • Pull power management updates from Rafael Wysocki:
    "These update the cpuidle poll state definition to reduce excessive
    energy usage related to it, add new CPU ID to the RAPL power capping
    driver, update the ACPI system suspend code to handle some special
    cases better, extend the PM core's device links code slightly, add new
    sysfs attribute for better suspend-to-idle diagnostics and easier
    hibernation handling, update power management tools and clean up
    cpufreq quite a bit.

    Specifics:

    - Modify the cpuidle poll state implementation to prevent CPUs from
    staying in the loop in there for excessive times (Rafael Wysocki).

    - Add Intel Cannon Lake chips support to the RAPL power capping
    driver (Joe Konno).

    - Add reference counting to the device links handling code in the PM
    core (Lukas Wunner).

    - Avoid reconfiguring GPEs on suspend-to-idle in the ACPI system
    suspend code (Rafael Wysocki).

    - Allow devices to be put into deeper low-power states via ACPI if
    both _SxD and _SxW are missing (Daniel Drake).

    - Reorganize the core ACPI suspend-to-idle wakeup code to avoid a
    keyboard wakeup issue on Asus UX331UA (Chris Chiu).

    - Prevent the PCMCIA library code from aborting suspend-to-idle due
    to noirq suspend failures resulting from incorrect assumptions
    (Rafael Wysocki).

    - Add coupled cpuidle supprt to the Exynos3250 platform (Marek
    Szyprowski).

    - Add new sysfs file to make it easier to specify the image storage
    location during hibernation (Mario Limonciello).

    - Add sysfs files for collecting suspend-to-idle usage and time
    statistics for CPU idle states (Rafael Wysocki).

    - Update the pm-graph utilities (Todd Brandt).

    - Reduce the kernel log noise related to reporting Low-power Idle
    constraings by the ACPI system suspend code (Rafael Wysocki).

    - Make it easier to distinguish dedicated wakeup IRQs in the
    /proc/interrupts output (Tony Lindgren).

    - Add the frequency table validation in cpufreq to the core and drop
    it from a number of cpufreq drivers (Viresh Kumar).

    - Drop "cooling-{min|max}-level" for CPU nodes from a couple of DT
    bindings (Viresh Kumar).

    - Clean up the CPU online error code path in the cpufreq core (Viresh
    Kumar).

    - Fix assorted issues in the SCPI, CPPC, mediatek and tegra186
    cpufreq drivers (Arnd Bergmann, Chunyu Hu, George Cherian, Viresh
    Kumar).

    - Drop memory allocation error messages from a few places in cpufreq
    and cpuildle drivers (Markus Elfring)"

    * tag 'pm-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (56 commits)
    ACPI / PM: Fix keyboard wakeup from suspend-to-idle on ASUS UX331UA
    cpufreq: CPPC: Use transition_delay_us depending transition_latency
    PM / hibernate: Change message when writing to /sys/power/resume
    PM / hibernate: Make passing hibernate offsets more friendly
    cpuidle: poll_state: Avoid invoking local_clock() too often
    PM: cpuidle/suspend: Add s2idle usage and time state attributes
    cpuidle: Enable coupled cpuidle support on Exynos3250 platform
    cpuidle: poll_state: Add time limit to poll_idle()
    cpufreq: tegra186: Don't validate the frequency table twice
    cpufreq: speedstep: Don't validate the frequency table twice
    cpufreq: sparc: Don't validate the frequency table twice
    cpufreq: sh: Don't validate the frequency table twice
    cpufreq: sfi: Don't validate the frequency table twice
    cpufreq: scpi: Don't validate the frequency table twice
    cpufreq: sc520: Don't validate the frequency table twice
    cpufreq: s3c24xx: Don't validate the frequency table twice
    cpufreq: qoirq: Don't validate the frequency table twice
    cpufreq: pxa: Don't validate the frequency table twice
    cpufreq: ppc_cbe: Don't validate the frequency table twice
    cpufreq: powernow: Don't validate the frequency table twice
    ...

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "These update the ACPICA code in the kernel to follow upstream revision
    20180313 which includes fixes related to the so-called module-level
    AML (mostly "if" type of statements outside of any methods) that
    should improve the handling of systems that load alternative SSDTs
    depending on the current configuration, for example, and event
    handling fixes related to disabling and enabling GPEs on system
    startup and on suspend/resume.

    Moreover, the ACPICA license boilerplate is replaced with SPDX license
    IDs which alone reduces the number of lines of ACPICA code in the
    kernel quite a bit.

    Also added is a new driver for the generic ACPI Time and Alarm Device
    (TAD). At the moment it only handles the most basic capabilities of
    the TAD, however.

    In addition to that the ACPI battery driver is improved to handle
    battery thresholds on ThinkPads, among other things, some bugs are
    fixed, a new backlight quirk is added and some documentation is
    updated.

    Specifics:

    - Update the in-kernel ACPICA code to upstream revision 20180313
    including:
    * Module-level AML code handling fixes and simplifications (Bob
    Moore, Erik Schmauss).
    * Fixes and cleanups related to messaging (Bob Moore).
    * Events handling fixes related to disabling and enabling GPEs
    (Erik Schmauss).
    * Introduction of SPDX license identifiers and removal of license
    boilerplate in multiple files (Erik Schmauss).
    * Assorted fixes and cleanups (Bob Moore, Erik Schmauss, Hans de
    Goede, Seunghun Han).

    - Add new basic driver for the ACPI Time and Alarm Device (Rafael
    Wysocki).

    - Modify the ACPI battery driver to support battery thresholds on
    Lenovo ThinkPads (Ognjen Galic, Colin Ian King).

    - Avoid reporting battery capacity over 100 in the ACPI battery
    driver in some cases (Laszlo Toth).

    - Make the kernel recognize an OEM _OSI string from Dell to avoid
    power management issues with NVidia GPUs in Dell platforms (Alex
    Hung).

    - Make the PCI IRQ management code handle missing _PRS cleanly (Alex
    Hung).

    - Fix uevent notifications related to device hotplut (Lee, Chun-Yi).

    - Prevent the ACPI PAD driver from leaking memory (Lenny Szubowicz).

    - Update the ACPI CPPC library code to include subspace IDs in the
    kernel messages logged by it (George Cherian).

    - Add backlight quirk for Samsung 670Z5E (Hans de Goede).

    - Add the NFIT and HMAT tables to the list of ACPI tables that can be
    overridden via initrd (Dan Williams).

    - Fix and clean up some ACPI documentation and Kconfig help language
    (Aishwarya Pant, Randy Dunlap).

    - Replace license boilerplate with an SPDX license ID in the ACPI
    PMIC operation region handling code (Rajmohan Mani)"

    * tag 'acpi-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (39 commits)
    ACPI: acpi_pad: Fix memory leak in power saving threads
    ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E
    ACPI: Add Time and Alarm Device (TAD) driver
    ACPI / scan: Send change uevent with offine environmental data
    ACPI / Kconfig: Update ACPI_PROCFS_POWER help text
    ACPI / OSI: Add OEM _OSI strings to disable NVidia RTD3
    ACPICA: Update version to 20180313
    ACPICA: Cleanup/simplify module-level code support
    ACPICA: Events: add a return on failure from acpi_hw_register_read
    ACPICA: adding SPDX headers
    ACPICA: Rename a global for clarity, no functional change
    ACPICA: macros: fix ACPI_ERROR_NAMESPACE macro
    ACPICA: Change a compile-time option to a runtime option
    ACPICA: Remove calling of _STA from acpi_get_object_info()
    ACPICA: AML Debug Object: Don't ignore output of zero-length strings
    ACPICA: Fix memory leak on unusual memory leak
    ACPICA: Events: Dispatch GPEs after enabling for the first time
    ACPICA: Events: Add parallel GPE handling support to fix potential redundant _Exx evaluations
    ACPICA: Events: Stop unconditionally clearing ACPI IRQs during suspend/resume
    ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
    ...

    Linus Torvalds
     

03 Apr, 2018

7 commits

  • Pull removal of in-kernel calls to syscalls from Dominik Brodowski:
    "System calls are interaction points between userspace and the kernel.
    Therefore, system call functions such as sys_xyzzy() or
    compat_sys_xyzzy() should only be called from userspace via the
    syscall table, but not from elsewhere in the kernel.

    At least on 64-bit x86, it will likely be a hard requirement from
    v4.17 onwards to not call system call functions in the kernel: It is
    better to use use a different calling convention for system calls
    there, where struct pt_regs is decoded on-the-fly in a syscall wrapper
    which then hands processing over to the actual syscall function. This
    means that only those parameters which are actually needed for a
    specific syscall are passed on during syscall entry, instead of
    filling in six CPU registers with random user space content all the
    time (which may cause serious trouble down the call chain). Those
    x86-specific patches will be pushed through the x86 tree in the near
    future.

    Moreover, rules on how data may be accessed may differ between kernel
    data and user data. This is another reason why calling sys_xyzzy() is
    generally a bad idea, and -- at most -- acceptable in arch-specific
    code.

    This patchset removes all in-kernel calls to syscall functions in the
    kernel with the exception of arch/. On top of this, it cleans up the
    three places where many syscalls are referenced or prototyped, namely
    kernel/sys_ni.c, include/linux/syscalls.h and include/linux/compat.h"

    * 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux: (109 commits)
    bpf: whitelist all syscalls for error injection
    kernel/sys_ni: remove {sys_,sys_compat} from cond_syscall definitions
    kernel/sys_ni: sort cond_syscall() entries
    syscalls/x86: auto-create compat_sys_*() prototypes
    syscalls: sort syscall prototypes in include/linux/compat.h
    net: remove compat_sys_*() prototypes from net/compat.h
    syscalls: sort syscall prototypes in include/linux/syscalls.h
    kexec: move sys_kexec_load() prototype to syscalls.h
    x86/sigreturn: use SYSCALL_DEFINE0
    x86: fix sys_sigreturn() return type to be long, not unsigned long
    x86/ioport: add ksys_ioperm() helper; remove in-kernel calls to sys_ioperm()
    mm: add ksys_readahead() helper; remove in-kernel calls to sys_readahead()
    mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff()
    mm: add ksys_fadvise64_64() helper; remove in-kernel call to sys_fadvise64_64()
    fs: add ksys_fallocate() wrapper; remove in-kernel calls to sys_fallocate()
    fs: add ksys_p{read,write}64() helpers; remove in-kernel calls to syscalls
    fs: add ksys_truncate() wrapper; remove in-kernel calls to sys_truncate()
    fs: add ksys_sync_file_range helper(); remove in-kernel calls to syscall
    kernel: add ksys_setsid() helper; remove in-kernel call to sys_setsid()
    kernel: add ksys_unshare() helper; remove in-kernel calls to sys_unshare()
    ...

    Linus Torvalds
     
  • Commit 2a98dc028f91 ("include/linux/bitmap.h: turn bitmap_set and
    bitmap_clear into memset when possible") introduced an optimization to
    bitmap_{set,clear}() which uses memset() when the start and length are
    constants aligned to a byte.

    This is wrong on big-endian systems; our bitmaps are arrays of unsigned
    long, so bit n is not at byte n / 8 in memory. This was caught by the
    Btrfs selftests, but the bitmap selftests also fail when run on a
    big-endian machine.

    We can still use memset if the start and length are aligned to an
    unsigned long, so do that on big-endian. The same problem applies to
    the memcmp in bitmap_equal(), so fix it there, too.

    Fixes: 2a98dc028f91 ("include/linux/bitmap.h: turn bitmap_set and bitmap_clear into memset when possible")
    Fixes: 2c6deb01525a ("bitmap: use memcmp optimisation in more situations")
    Cc: stable@kernel.org
    Reported-by: "Erhard F."
    Cc: Matthew Wilcox
    Cc: Rasmus Villemoes
    Cc: Andrew Morton
    Cc: Arnd Bergmann
    Signed-off-by: Omar Sandoval
    Signed-off-by: Linus Torvalds

    Omar Sandoval
     
  • Pul removal of obsolete architecture ports from Arnd Bergmann:
    "This removes the entire architecture code for blackfin, cris, frv,
    m32r, metag, mn10300, score, and tile, including the associated device
    drivers.

    I have been working with the (former) maintainers for each one to
    ensure that my interpretation was right and the code is definitely
    unused in mainline kernels. Many had fond memories of working on the
    respective ports to start with and getting them included in upstream,
    but also saw no point in keeping the port alive without any users.

    In the end, it seems that while the eight architectures are extremely
    different, they all suffered the same fate: There was one company in
    charge of an SoC line, a CPU microarchitecture and a software
    ecosystem, which was more costly than licensing newer off-the-shelf
    CPU cores from a third party (typically ARM, MIPS, or RISC-V). It
    seems that all the SoC product lines are still around, but have not
    used the custom CPU architectures for several years at this point. In
    contrast, CPU instruction sets that remain popular and have actively
    maintained kernel ports tend to all be used across multiple licensees.

    [ See the new nds32 port merged in the previous commit for the next
    generation of "one company in charge of an SoC line, a CPU
    microarchitecture and a software ecosystem" - Linus ]

    The removal came out of a discussion that is now documented at
    https://lwn.net/Articles/748074/. Unlike the original plans, I'm not
    marking any ports as deprecated but remove them all at once after I
    made sure that they are all unused. Some architectures (notably tile,
    mn10300, and blackfin) are still being shipped in products with old
    kernels, but those products will never be updated to newer kernel
    releases.

    After this series, we still have a few architectures without mainline
    gcc support:

    - unicore32 and hexagon both have very outdated gcc releases, but the
    maintainers promised to work on providing something newer. At least
    in case of hexagon, this will only be llvm, not gcc.

    - openrisc, risc-v and nds32 are still in the process of finishing
    their support or getting it added to mainline gcc in the first
    place. They all have patched gcc-7.3 ports that work to some
    degree, but complete upstream support won't happen before gcc-8.1.
    Csky posted their first kernel patch set last week, their situation
    will be similar

    [ Palmer Dabbelt points out that RISC-V support is in mainline gcc
    since gcc-7, although gcc-7.3.0 is the recommended minimum - Linus ]"

    This really says it all:

    2498 files changed, 95 insertions(+), 467668 deletions(-)

    * tag 'arch-removal' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (74 commits)
    MAINTAINERS: UNICORE32: Change email account
    staging: iio: remove iio-trig-bfin-timer driver
    tty: hvc: remove tile driver
    tty: remove bfin_jtag_comm and hvc_bfin_jtag drivers
    serial: remove tile uart driver
    serial: remove m32r_sio driver
    serial: remove blackfin drivers
    serial: remove cris/etrax uart drivers
    usb: Remove Blackfin references in USB support
    usb: isp1362: remove blackfin arch glue
    usb: musb: remove blackfin port
    usb: host: remove tilegx platform glue
    pwm: remove pwm-bfin driver
    i2c: remove bfin-twi driver
    spi: remove blackfin related host drivers
    watchdog: remove bfin_wdt driver
    can: remove bfin_can driver
    mmc: remove bfin_sdh driver
    input: misc: remove blackfin rotary driver
    input: keyboard: remove bf54x driver
    ...

    Linus Torvalds
     
  • Pull nds32 architecture support from Greentime Hu:
    "This contains the core nds32 Linux port (including interrupt
    controller driver and timer driver), which has been through seven
    rounds of review on mailing list.

    It is able to boot to shell and passes most LTP-2017 testsuites in
    nds32 AE3XX platform:

    Total Tests: 1901
    Total Skipped Tests: 618
    Total Failures: 78"

    Reviewed-by: Arnd Bergmann

    * tag 'nds32-for-linus-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux: (44 commits)
    nds32: To use the generic dump_stack()
    nds32: fix building failed if using elf toolchain.
    nios2: add ioremap_nocache declaration before include asm-generic/io.h.
    nds32: fix building failed if using older version gcc.
    dt-bindings: timer: Add andestech atcpit100 timer binding doc
    clocksource/drivers/atcpit100: VDSO support
    clocksource/drivers/atcpit100: Add andestech atcpit100 timer
    net: faraday add nds32 support.
    irqchip: Andestech Internal Vector Interrupt Controller driver
    dt-bindings: interrupt-controller: Andestech Internal Vector Interrupt Controller
    dt-bindings: nds32 SoC Bindings
    dt-bindings: nds32 L2 cache controller Bindings
    dt-bindings: nds32 CPU Bindings
    MAINTAINERS: Add nds32
    nds32: Build infrastructure
    nds32: defconfig
    nds32: Miscellaneous header files
    nds32: Device tree support
    nds32: Generic timers support
    nds32: Loadable modules
    ...

    Linus Torvalds
     
  • Pull EFI updates from Ingo Molnar:
    "The main EFI changes in this cycle were:

    - Fix the apple-properties code (Andy Shevchenko)

    - Add WARN() on arm64 if UEFI Runtime Services corrupt the reserved
    x18 register (Ard Biesheuvel)

    - Use efi_switch_mm() on x86 instead of manipulating %cr3 directly
    (Sai Praneeth)

    - Fix early memremap leak in ESRT code (Ard Biesheuvel)

    - Switch to L"xxx" notation for wide string literals (Ard Biesheuvel)

    - ... plus misc other cleanups and bugfixes"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/efi: Use efi_switch_mm() rather than manually twiddling with %cr3
    x86/efi: Replace efi_pgd with efi_mm.pgd
    efi: Use string literals for efi_char16_t variable initializers
    efi/esrt: Fix handling of early ESRT table mapping
    efi: Use efi_mm in x86 as well as ARM
    efi: Make const array 'apple' static
    efi/apple-properties: Use memremap() instead of ioremap()
    efi: Reorder pr_notice() with add_device_randomness() call
    x86/efi: Replace GFP_ATOMIC with GFP_KERNEL in efi_query_variable_store()
    efi/arm64: Check whether x18 is preserved by runtime services calls
    efi/arm*: Stop printing addresses of virtual mappings
    efi/apple-properties: Remove redundant attribute initialization from unmarshal_key_value_pairs()
    efi/arm*: Only register page tables when they exist

    Linus Torvalds
     
  • Pull x86 dma mapping updates from Ingo Molnar:
    "This tree, by Christoph Hellwig, switches over the x86 architecture to
    the generic dma-direct and swiotlb code, and also unifies more of the
    dma-direct code between architectures. The now unused x86-only
    primitives are removed"

    * 'x86-dma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    dma-mapping: Don't clear GFP_ZERO in dma_alloc_attrs
    swiotlb: Make swiotlb_{alloc,free}_buffer depend on CONFIG_DMA_DIRECT_OPS
    dma/swiotlb: Remove swiotlb_{alloc,free}_coherent()
    dma/direct: Handle force decryption for DMA coherent buffers in common code
    dma/direct: Handle the memory encryption bit in common code
    dma/swiotlb: Remove swiotlb_set_mem_attributes()
    set_memory.h: Provide set_memory_{en,de}crypted() stubs
    x86/dma: Remove dma_alloc_coherent_gfp_flags()
    iommu/intel-iommu: Enable CONFIG_DMA_DIRECT_OPS=y and clean up intel_{alloc,free}_coherent()
    iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()
    x86/dma/amd_gart: Use dma_direct_{alloc,free}()
    x86/dma/amd_gart: Look at dev->coherent_dma_mask instead of GFP_DMA
    x86/dma: Use generic swiotlb_ops
    x86/dma: Use DMA-direct (CONFIG_DMA_DIRECT_OPS=y)
    x86/dma: Remove dma_alloc_coherent_mask()

    Linus Torvalds
     
  • Pull wait_var_event updates from Ingo Molnar:
    "This introduces the new wait_var_event() API, which is a more flexible
    waiting primitive than wait_on_atomic_t().

    All wait_on_atomic_t() users are migrated over to the new API and
    wait_on_atomic_t() is removed. The migration fixes one bug and should
    result in no functional changes for the other usecases"

    * 'sched-wait-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/wait: Improve __var_waitqueue() code generation
    sched/wait: Remove the wait_on_atomic_t() API
    sched/wait, arch/mips: Fix and convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, fs/ocfs2: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, fs/nfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, fs/fscache: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, fs/btrfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, fs/afs: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, drivers/media: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait, drivers/drm: Convert wait_on_atomic_t() usage to the new wait_var_event() API
    sched/wait: Introduce wait_var_event()

    Linus Torvalds