1. 04 Feb, 2018 7 commits
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v4.16' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 8ac4840a
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
       "Misc driver changes only:
      
         - TI-MsgMgr: Fix print format for a printk
      
         - TI-MSgMgr: SPDX license switch for the driver
      
         - QCOM-IPC: Convert driver to use regmap
      
         - QCOM-IPC: Spawn sibling clock device from mailbox driver"
      
      * tag 'mailbox-v4.16' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        dt-bindings: mailbox: qcom: Document the APCS clock binding
        mailbox: qcom: Create APCS child device for clock controller
        mailbox: qcom: Convert APCS IPC driver to use regmap
        mailbox: ti-msgmgr: Use %zu for size_t print format
        mailbox: ti-msgmgr: Switch to SPDX Licensing
      8ac4840a
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 4141cf67
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has the following changes for you:
      
         - new flag to mark DMA safe buffers in i2c_msg. Also, some
           infrastructure around it. And docs.
      
         - huge refactoring of the at24 driver led by the new maintainer
           Bartosz
      
         - update I2C bus recovery to send STOP after recovery
      
         - conversion from gpio to gpiod for I2C bus recovery
      
         - adding a fault-injector to the i2c-gpio driver
      
         - lots of small driver improvements, and bigger ones to
           i2c-sh_mobile"
      
      * 'i2c/for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (99 commits)
        i2c: mv64xxx: Add myself as maintainer for this driver
        i2c: mv64xxx: Fix clock resource by adding an optional bus clock
        i2c: mv64xxx: Remove useless test before clk_disable_unprepare
        i2c: mxs: use true and false for boolean values
        i2c: meson: update doc description to fix build warnings
        i2c: meson: add configurable divider factors
        dt-bindings: i2c: update documentation for the Meson-AXG
        i2c: imx-lpi2c: add runtime pm support
        i2c: rcar: fix some trivial typos in comments
        i2c: davinci: fix the cpufreq transition
        i2c: rk3x: add proper kerneldoc header
        i2c: rk3x: account for const type of of_device_id.data
        i2c: acorn: remove outdated path from file header
        i2c: acorn: add MODULE_LICENSE tag
        i2c: rcar: implement bus recovery
        i2c: send STOP after successful bus recovery
        i2c: ensure SDA is released in recovery if SDA is controllable
        i2c: add 'set_sda' to bus_recovery_info
        i2c: add identifier in declarations for i2c_bus_recovery
        i2c: make kerneldoc about bus recovery more precise
        ...
      4141cf67
    • Linus Torvalds's avatar
      Merge tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt · 3462ac57
      Linus Torvalds authored
      Pull fscrypt updates from Ted Ts'o:
       "Refactor support for encrypted symlinks to move common code to fscrypt"
      
      Ted also points out about the merge:
       "This makes the f2fs symlink code use the fscrypt_encrypt_symlink()
        from the fscrypt tree. This will end up dropping the kzalloc() ->
        f2fs_kzalloc() change, which means the fscrypt-specific allocation
        won't get tested by f2fs's kmalloc error injection system; which is
        fine"
      
      * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt: (26 commits)
        fscrypt: fix build with pre-4.6 gcc versions
        fscrypt: remove 'ci' parameter from fscrypt_put_encryption_info()
        fscrypt: document symlink length restriction
        fscrypt: fix up fscrypt_fname_encrypted_size() for internal use
        fscrypt: define fscrypt_fname_alloc_buffer() to be for presented names
        fscrypt: calculate NUL-padding length in one place only
        fscrypt: move fscrypt_symlink_data to fscrypt_private.h
        fscrypt: remove fscrypt_fname_usr_to_disk()
        ubifs: switch to fscrypt_get_symlink()
        ubifs: switch to fscrypt ->symlink() helper functions
        ubifs: free the encrypted symlink target
        f2fs: switch to fscrypt_get_symlink()
        f2fs: switch to fscrypt ->symlink() helper functions
        ext4: switch to fscrypt_get_symlink()
        ext4: switch to fscrypt ->symlink() helper functions
        fscrypt: new helper function - fscrypt_get_symlink()
        fscrypt: new helper functions for ->symlink()
        fscrypt: trim down fscrypt.h includes
        fscrypt: move fscrypt_is_dot_dotdot() to fs/crypto/fname.c
        fscrypt: move fscrypt_valid_enc_modes() to fscrypt_private.h
        ...
      3462ac57
    • Georgi Djakov's avatar
      dt-bindings: mailbox: qcom: Document the APCS clock binding · 0ae7d327
      Georgi Djakov authored
      Update the binding documentation for APCS to mention that the APCS
      hardware block also expose a clock controller functionality.
      
      The APCS clock controller is a mux and half-integer divider. It has the
      main CPU PLL as an input and provides the clock for the application CPU.
      Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
      0ae7d327
    • Georgi Djakov's avatar
      mailbox: qcom: Create APCS child device for clock controller · c815d769
      Georgi Djakov authored
      There is a clock controller functionality provided by the APCS hardware
      block of msm8916 devices. The device-tree would represent an APCS node
      with both mailbox and clock provider properties.
      Create a platform child device for the clock controller functionality so
      the driver can probe and use APCS as parent.
      Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
      Acked-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
      c815d769
    • Georgi Djakov's avatar
      mailbox: qcom: Convert APCS IPC driver to use regmap · c6a8b171
      Georgi Djakov authored
      This hardware block provides more functionalities that just IPC. Convert
      it to regmap to allow other child platform devices to use the same regmap.
      Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
      Acked-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
      c6a8b171
    • Linus Torvalds's avatar
      Merge tag 'usercopy-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 617aebe6
      Linus Torvalds authored
      Pull hardened usercopy whitelisting from Kees Cook:
       "Currently, hardened usercopy performs dynamic bounds checking on slab
        cache objects. This is good, but still leaves a lot of kernel memory
        available to be copied to/from userspace in the face of bugs.
      
        To further restrict what memory is available for copying, this creates
        a way to whitelist specific areas of a given slab cache object for
        copying to/from userspace, allowing much finer granularity of access
        control.
      
        Slab caches that are never exposed to userspace can declare no
        whitelist for their objects, thereby keeping them unavailable to
        userspace via dynamic copy operations. (Note, an implicit form of
        whitelisting is the use of constant sizes in usercopy operations and
        get_user()/put_user(); these bypass all hardened usercopy checks since
        these sizes cannot change at runtime.)
      
        This new check is WARN-by-default, so any mistakes can be found over
        the next several releases without breaking anyone's system.
      
        The series has roughly the following sections:
         - remove %p and improve reporting with offset
         - prepare infrastructure and whitelist kmalloc
         - update VFS subsystem with whitelists
         - update SCSI subsystem with whitelists
         - update network subsystem with whitelists
         - update process memory with whitelists
         - update per-architecture thread_struct with whitelists
         - update KVM with whitelists and fix ioctl bug
         - mark all other allocations as not whitelisted
         - update lkdtm for more sensible test overage"
      
      * tag 'usercopy-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (38 commits)
        lkdtm: Update usercopy tests for whitelisting
        usercopy: Restrict non-usercopy caches to size 0
        kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl
        kvm: whitelist struct kvm_vcpu_arch
        arm: Implement thread_struct whitelist for hardened usercopy
        arm64: Implement thread_struct whitelist for hardened usercopy
        x86: Implement thread_struct whitelist for hardened usercopy
        fork: Provide usercopy whitelisting for task_struct
        fork: Define usercopy region in thread_stack slab caches
        fork: Define usercopy region in mm_struct slab caches
        net: Restrict unwhitelisted proto caches to size 0
        sctp: Copy struct sctp_sock.autoclose to userspace using put_user()
        sctp: Define usercopy region in SCTP proto slab cache
        caif: Define usercopy region in caif proto slab cache
        ip: Define usercopy region in IP proto slab cache
        net: Define usercopy region in struct proto slab cache
        scsi: Define usercopy region in scsi_sense_cache slab cache
        cifs: Define usercopy region in cifs_request slab cache
        vxfs: Define usercopy region in vxfs_inode slab cache
        ufs: Define usercopy region in ufs_inode_cache slab cache
        ...
      617aebe6
  2. 03 Feb, 2018 23 commits
    • Linus Torvalds's avatar
      Merge tag 'pstore-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 0771ad44
      Linus Torvalds authored
      Pull pstore update from Kees Cook:
       "Only a header cleanup this release; nice and quiet. :)
      
         - clean up hardirq header usage (Yang Shi)"
      
      * tag 'pstore-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        fs: pstore: remove unused hardirq.h
      0771ad44
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 23aedc4b
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Only miscellaneous cleanups and bug fixes for ext4 this cycle"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: create ext4_kset dynamically
        ext4: create ext4_feat kobject dynamically
        ext4: release kobject/kset even when init/register fail
        ext4: fix incorrect indentation of if statement
        ext4: correct documentation for grpid mount option
        ext4: use 'sbi' instead of 'EXT4_SB(sb)'
        ext4: save error to disk in __ext4_grp_locked_error()
        jbd2: fix sphinx kernel-doc build warnings
        ext4: fix a race in the ext4 shutdown path
        mbcache: make sure c_entry_count is not decremented past zero
        ext4: no need flush workqueue before destroying it
        ext4: fixed alignment and minor code cleanup in ext4.h
        ext4: fix ENOSPC handling in DAX page fault handler
        dax: pass detailed error code from dax_iomap_fault()
        mbcache: revert "fs/mbcache.c: make count_objects() more robust"
        mbcache: initialize entry->e_referenced in mb_cache_entry_create()
        ext4: fix up remaining files with SPDX cleanups
      23aedc4b
    • Linus Torvalds's avatar
      Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 85b8bac9
      Linus Torvalds authored
      Pull dmi subsystem updates/fixes from Jean Delvare.
      
      * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        firmware: dmi: handle missing DMI data gracefully
        firmware: dmi_scan: Fix handling of empty DMI strings
        firmware: dmi_scan: Drop dmi_initialized
        firmware: dmi: Optimize dmi_matches
      85b8bac9
    • Linus Torvalds's avatar
      Merge branch 'fixes-v4.16-rc1' of... · 1726aa70
      Linus Torvalds authored
      Merge branch 'fixes-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
      
      Pull integrity fixes from James Morris:
      
      -  add James Bottommley as a Trusted Keys maintainer.
      
       - IMA: re-initialize iint->atomic_flags on iint_free(), from Mimi.
      
      * 'fixes-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        ima: re-initialize iint->atomic_flags
        maintainers: update trusted keys
      1726aa70
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · c80c238a
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) The bnx2x can hang if you give it a GSO packet with a segment size
          which is too big for the hardware, detect and drop in this case.
          From Daniel Axtens.
      
       2) Fix some overflows and pointer leaks in xtables, from Dmitry Vyukov.
      
       3) Missing RCU locking in igmp, from Eric Dumazet.
      
       4) Fix RX checksum handling on r8152, it can only checksum UDP and TCP
          packets. From Hayes Wang.
      
       5) Minor pacing tweak to TCP BBR congestion control, from Neal
          Cardwell.
      
       6) Missing RCU annotations in cls_u32, from Paolo Abeni.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits)
        Revert "defer call to mem_cgroup_sk_alloc()"
        soreuseport: fix mem leak in reuseport_add_sock()
        net: qlge: use memmove instead of skb_copy_to_linear_data
        net: qed: use correct strncpy() size
        net: cxgb4: avoid memcpy beyond end of source buffer
        cls_u32: add missing RCU annotation.
        r8152: set rx mode early when linking on
        r8152: fix wrong checksum status for received IPv4 packets
        nfp: fix TLV offset calculation
        net: pxa168_eth: add netconsole support
        net: igmp: add a missing rcu locking section
        ibmvnic: fix firmware version when no firmware level has been provided by the VIOS server
        vmxnet3: remove redundant initialization of pointer 'rq'
        lan78xx: remove redundant initialization of pointer 'phydev'
        net: jme: remove unused initialization of 'rxdesc'
        rtnetlink: remove check for IFLA_IF_NETNSID
        rocker: fix possible null pointer dereference in rocker_router_fib_event_work
        inet: Avoid unitialized variable warning in inet_unhash()
        net: bridge: Fix uninitialized error in br_fdb_sync_static()
        openvswitch: Remove padding from packet before L3+ conntrack processing
        ...
      c80c238a
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.16.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 6ec4de89
      Linus Torvalds authored
      Pull GFS2 fixes from Bob Peterson:
       "Andreas Gruenbacher wrote two additional patches that we would like
        merged in this time. Both are regressions:
      
         - fix another kernel build dependency problem
      
         - fix a performance regression in glock dumps"
      
      * tag 'gfs2-4.16.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Glock dump performance regression fix
        gfs2: Fix the crc32c dependency
      6ec4de89
    • Linus Torvalds's avatar
      Merge tag 'scsi-postmerge' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · abbbd021
      Linus Torvalds authored
      Pull second set of SCSI updates from James Bottomley:
       "This is a set of three patches that depended on mq and zone changes in
        the block tree (now upstream)"
      
      * tag 'scsi-postmerge' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: sd: Remove zone write locking
        scsi: sd_zbc: Initialize device request queue zoned data
        scsi: scsi-mq-debugfs: Show more information
      abbbd021
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.16-rc1' of... · 6cb7903e
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This update to Kselftest consists of fixes, cleanups, and SPDX license
        additions"
      
      * tag 'linux-kselftest-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: vm: update .gitignore with missing generated file
        selftests/x86: Add <test_name>{,_32,_64} targets
        selftests: Fix loss of test output in run_kselftests.sh
        selftest: ftrace: Fix to add 256 kprobe events correctly
        selftest: ftrace: Fix to pick text symbols for kprobes
        selftests: media_tests: Add SPDX license identifier
        selftests: kselftest.h: Add SPDX license identifier
        selftests: kselftest_install.sh: Add SPDX license identifier
        selftests: gen_kselftest_tar.h: Add SPDX license identifier
        selftests: media_tests: Fix Makefile 'clean' target warning
        tools/testing: Fix trailing semicolon
        kselftest: fix OOM in memory compaction test
        selftests: seccomp: fix compile error seccomp_bpf
      6cb7903e
    • Linus Torvalds's avatar
      pinctrl: remove include file from <linux/device.h> · 23c35f48
      Linus Torvalds authored
      When pulling the recent pinctrl merge, I was surprised by how a
      pinctrl-only pull request ended up rebuilding basically the whole
      kernel.
      
      The reason for that ended up being that <linux/device.h> included
      <linux/pinctrl/devinfo.h>, so any change to that file ended up causing
      pretty much every driver out there to be rebuilt.
      
      The reason for that was because 'struct device' has this in it:
      
          #ifdef CONFIG_PINCTRL
              struct dev_pin_info     *pins;
          #endif
      
      but we already avoid header includes for these kinds of things in that
      header file, preferring to just use a forward-declaration of the
      structure instead.  Exactly to avoid this kind of header dependency.
      
      Since some drivers seem to expect that <linux/pinctrl/devinfo.h> header
      to come in automatically, move the include to <linux/pinctrl/pinctrl.h>
      instead.  It might be better to just make the includes more targeted,
      but I'm not going to review every driver.
      
      It would definitely be good to have a tool for finding and minimizing
      header dependencies automatically - or at least help with them.  Right
      now we almost certainly end up having way too many of these things, and
      it's hard to test every single configuration.
      
      FWIW, you can get a sense of the "hotness" of a header file with something
      like this after doing a full build:
      
          find . -name '.*.o.cmd' -print0 |
              xargs -0 tail --lines=+2 |
              grep -v 'wildcard ' |
              tr ' \\' '\n' |
              sort | uniq -c | sort -n | less -S
      
      which isn't exact (there are other things in those '*.o.cmd' than just
      the dependencies, and the "--lines=+2" only removes the header), but
      might a useful approximation.
      
      With this patch, <linux/pinctrl/devinfo.h> drops to "only" having 833
      users in the current x86-64 allmodconfig.  In contrast, <linux/device.h>
      has 14857 build files including it directly or indirectly.
      
      Of course, the headers that absolutely _everybody_ includes (things like
      <linux/types.h> etc) get a score of 23000+.
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      23c35f48
    • Ard Biesheuvel's avatar
      firmware: dmi: handle missing DMI data gracefully · a81114d0
      Ard Biesheuvel authored
      Currently, when booting a kernel with DMI support on a platform that has
      no DMI tables, the following output is emitted into the kernel log:
      
        [    0.128818] DMI not present or invalid.
        ...
        [    1.306659] dmi: Firmware registration failed.
        ...
        [    2.908681] dmi-sysfs: dmi entry is absent.
      
      The first one is a pr_info(), but the subsequent ones are pr_err()s that
      complain about a condition that is not really an error to begin with.
      
      So let's clean this up, and give up silently if dma_available is not set.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Acked-by: default avatarMartin Hundebøll <mnhu@prevas.dk>
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      a81114d0
    • Jean Delvare's avatar
      firmware: dmi_scan: Fix handling of empty DMI strings · a7770ae1
      Jean Delvare authored
      The handling of empty DMI strings looks quite broken to me:
      * Strings from 1 to 7 spaces are not considered empty.
      * True empty DMI strings (string index set to 0) are not considered
        empty, and result in allocating a 0-char string.
      * Strings with invalid index also result in allocating a 0-char
        string.
      * Strings starting with 8 spaces are all considered empty, even if
        non-space characters follow (sounds like a weird thing to do, but
        I have actually seen occurrences of this in DMI tables before.)
      * Strings which are considered empty are reported as 8 spaces,
        instead of being actually empty.
      
      Some of these issues are the result of an off-by-one error in memcmp,
      the rest is incorrect by design.
      
      So let's get it square: missing strings and strings made of only
      spaces, regardless of their length, should be treated as empty and
      no memory should be allocated for them. All other strings are
      non-empty and should be allocated.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Fixes: 79da4721 ("x86: fix DMI out of memory problems")
      Cc: Parag Warudkar <parag.warudkar@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      a7770ae1
    • Jean Delvare's avatar
      firmware: dmi_scan: Drop dmi_initialized · 7117794f
      Jean Delvare authored
      I don't think it makes sense to check for a possible bad
      initialization order at run time on every system when it is all
      decided at build time.
      
      A more efficient way to make sure developers do not introduce new
      calls to dmi_check_system() too early in the initialization sequence
      is to simply document the expected call order. That way, developers
      have a chance to get it right immediately, without having to
      test-boot their kernel, wonder why it does not work, and parse the
      kernel logs for a warning message. And we get rid of the run-time
      performance penalty as a nice side effect.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Cc: Ingo Molnar <mingo@kernel.org>
      7117794f
    • Jean Delvare's avatar
      firmware: dmi: Optimize dmi_matches · 8cf4e6a0
      Jean Delvare authored
      Function dmi_matches can me made a bit faster:
      
      * The documented purpose of dmi_initialized is to catch too early
        calls to dmi_check_system(). I'm not fully convinced it justifies
        slowing down the initialization of all systems out there, but at
        least the check should not have been moved from dmi_check_system()
        to dmi_matches(). dmi_matches() is being called for every entry of
        the table passed to dmi_check_system(), causing the same redundant
        check to be performed again and again. So move it back to
        dmi_check_system(), reverting this specific portion of commit
        d7b1956f ("DMI: Introduce dmi_first_match to make the interface
        more flexible").
      
      * Don't check for the exact_match flag again when we already know its
        value.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Fixes: d7b1956f ("DMI: Introduce dmi_first_match to make the interface more flexible")
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: Jeff Garzik <jgarzik@redhat.com>
      8cf4e6a0
    • Roman Gushchin's avatar
      Revert "defer call to mem_cgroup_sk_alloc()" · edbe69ef
      Roman Gushchin authored
      This patch effectively reverts commit 9f1c2674 ("net: memcontrol:
      defer call to mem_cgroup_sk_alloc()").
      
      Moving mem_cgroup_sk_alloc() to the inet_csk_accept() completely breaks
      memcg socket memory accounting, as packets received before memcg
      pointer initialization are not accounted and are causing refcounting
      underflow on socket release.
      
      Actually the free-after-use problem was fixed by
      commit c0576e39 ("net: call cgroup_sk_alloc() earlier in
      sk_clone_lock()") for the cgroup pointer.
      
      So, let's revert it and call mem_cgroup_sk_alloc() just before
      cgroup_sk_alloc(). This is safe, as we hold a reference to the socket
      we're cloning, and it holds a reference to the memcg.
      
      Also, let's drop BUG_ON(mem_cgroup_is_root()) check from
      mem_cgroup_sk_alloc(). I see no reasons why bumping the root
      memcg counter is a good reason to panic, and there are no realistic
      ways to hit it.
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      edbe69ef
    • Eric Dumazet's avatar
      soreuseport: fix mem leak in reuseport_add_sock() · 4db428a7
      Eric Dumazet authored
      reuseport_add_sock() needs to deal with attaching a socket having
      its own sk_reuseport_cb, after a prior
      setsockopt(SO_ATTACH_REUSEPORT_?BPF)
      
      Without this fix, not only a WARN_ONCE() was issued, but we were also
      leaking memory.
      
      Thanks to sysbot and Eric Biggers for providing us nice C repros.
      
      ------------[ cut here ]------------
      socket already in reuseport group
      WARNING: CPU: 0 PID: 3496 at net/core/sock_reuseport.c:119  
      reuseport_add_sock+0x742/0x9b0 net/core/sock_reuseport.c:117
      Kernel panic - not syncing: panic_on_warn set ...
      
      CPU: 0 PID: 3496 Comm: syzkaller869503 Not tainted 4.15.0-rc6+ #245
      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+0x194/0x257 lib/dump_stack.c:53
        panic+0x1e4/0x41c kernel/panic.c:183
        __warn+0x1dc/0x200 kernel/panic.c:547
        report_bug+0x211/0x2d0 lib/bug.c:184
        fixup_bug.part.11+0x37/0x80 arch/x86/kernel/traps.c:178
        fixup_bug arch/x86/kernel/traps.c:247 [inline]
        do_error_trap+0x2d7/0x3e0 arch/x86/kernel/traps.c:296
        do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:315
        invalid_op+0x22/0x40 arch/x86/entry/entry_64.S:1079
      
      Fixes: ef456144 ("soreuseport: define reuseport groups")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: syzbot+c0ea2226f77a42936bf7@syzkaller.appspotmail.com
      Acked-by: default avatarCraig Gallek <kraig@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4db428a7
    • Arnd Bergmann's avatar
      net: qlge: use memmove instead of skb_copy_to_linear_data · cfabb177
      Arnd Bergmann authored
      gcc-8 points out that the skb_copy_to_linear_data() argument points to
      the skb itself, which makes it run into a problem with overlapping
      memcpy arguments:
      
      In file included from include/linux/ip.h:20,
                       from drivers/net/ethernet/qlogic/qlge/qlge_main.c:26:
      drivers/net/ethernet/qlogic/qlge/qlge_main.c: In function 'ql_realign_skb':
      include/linux/skbuff.h:3378:2: error: 'memcpy' source argument is the same as destination [-Werror=restrict]
        memcpy(skb->data, from, len);
      
      It's unclear to me what the best solution is, maybe it ought to use a
      different helper that adjusts the skb data in a safe way. Simply using
      memmove() here seems like the easiest workaround.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cfabb177
    • Arnd Bergmann's avatar
      net: qed: use correct strncpy() size · 11f71108
      Arnd Bergmann authored
      passing the strlen() of the source string as the destination
      length is pointless, and gcc-8 now warns about it:
      
      drivers/net/ethernet/qlogic/qed/qed_debug.c: In function 'qed_grc_dump':
      include/linux/string.h:253: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
      
      This changes qed_grc_dump_big_ram() to instead uses the length of
      the destination buffer, and use strscpy() to guarantee nul-termination.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11f71108
    • Arnd Bergmann's avatar
      net: cxgb4: avoid memcpy beyond end of source buffer · 1a91649f
      Arnd Bergmann authored
      Building with link-time-optimizations revealed that the cxgb4 driver does
      a fixed-size memcpy() from a variable-length constant string into the
      network interface name:
      
      In function 'memcpy',
          inlined from 'cfg_queues_uld.constprop' at drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c:335:2,
          inlined from 'cxgb4_register_uld.constprop' at drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c:719:9:
      include/linux/string.h:350:3: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
         __read_overflow2();
         ^
      
      I can see two equally workable solutions: either we use a strncpy() instead
      of the memcpy() to stop at the end of the input, or we make the source buffer
      fixed length as well. This implements the latter.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a91649f
    • Paolo Abeni's avatar
      cls_u32: add missing RCU annotation. · 058a6c03
      Paolo Abeni authored
      In a couple of points of the control path, n->ht_down is currently
      accessed without the required RCU annotation. The accesses are
      safe, but sparse complaints. Since we already held the
      rtnl lock, let use rtnl_dereference().
      
      Fixes: a1b7c5fd ("net: sched: add cls_u32 offload hooks for netdevs")
      Fixes: de5df632 ("net: sched: cls_u32 changes to knode must appear atomic to readers")
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      058a6c03
    • David S. Miller's avatar
      Merge branch 'r8152-fix-rx-issues' · 0072f0c4
      David S. Miller authored
      Hayes Wang says:
      
      ====================
      r8152: fix rx issues
      
      The two patched are used to fix rx issues.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0072f0c4
    • Hayes Wang's avatar
      r8152: set rx mode early when linking on · aece4770
      Hayes Wang authored
      Set rx mode before calling netif_wake_queue() when linking on to avoid
      the device missing the receiving packets.
      
      The transmission may start after calling netif_wake_queue(), and the
      packets of resopnse may reach before calling rtl8152_set_rx_mode()
      which let the device could receive packets. Then, the packets of
      response would be missed.
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aece4770
    • Hayes Wang's avatar
      r8152: fix wrong checksum status for received IPv4 packets · ea6499e1
      Hayes Wang authored
      The device could only check the checksum of TCP and UDP packets. Therefore,
      for the IPv4 packets excluding TCP and UDP, the check of checksum is necessary,
      even though the IP checksum is correct.
      
      Take ICMP for example, The IP checksum may be correct, but the ICMP checksum
      may be wrong.
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ea6499e1
    • Edwin Peer's avatar
      nfp: fix TLV offset calculation · 1d8ef0c0
      Edwin Peer authored
      The data pointer in the config space TLV parser already includes
      NFP_NET_CFG_TLV_BASE, it should not be added again. Incorrect
      offset values were only used in printed user output, rendering
      the bug merely cosmetic.
      
      Fixes: 73a0329b ("nfp: add TLV capabilities to the BAR")
      Signed-off-by: default avatarEdwin Peer <edwin.peer@netronome.com>
      Reviewed-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d8ef0c0
  3. 02 Feb, 2018 10 commits
    • Linus Torvalds's avatar
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · d3581c8e
      Linus Torvalds authored
      Pull firewire updates from Stefan Richter
      
        - make JMicron JMB38x controllers work with IOMMU-equipped systems
      
        - IP-over-1394: allow user-configured MTU of up to 4096 bytes
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire-ohci: work around oversized DMA reads on JMicron controllers
        firewire: net: max MTU off by one
      d3581c8e
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · ef991796
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "This is the bulk of pin control changes for the v4.16 kernel cycle.
        Like with GPIO it is actually a bit calm this time.
      
        Core changes:
      
         - After lengthy discussions and partly due to my ignorance, we have
           merged a patch making pinctrl_force_default() and
           pinctrl_force_sleep() reprogram the states into the hardware of any
           hogged pins, even if they are already in the desired state.
      
           This only apply to hogged pins since groups of pins owned by
           drivers need to be managed by each driver, lest they could not do
           things like runtime PM and put pins to sleeping state even if the
           system as a whole is not in sleep.
      
        New drivers:
      
         - New driver for the Microsemi Ocelot SoC. This is used in ethernet
           switches.
      
         - The X-Powers AXP209 GPIO driver was extended to also deal with pin
           control and moved over from the GPIO subsystem. This circuit is a
           mixed-mode integrated circuit which is part of AllWinner designs.
      
         - New subdriver for the Qualcomm MSM8998 SoC, core of a high end
           mobile devices (phones) chipset.
      
         - New subdriver for the ST Microelectronics STM32MP157 MPU and
           STM32F769 MCU from the STM32 family.
      
         - New subdriver for the MediaTek MT7622 SoC. This is used for
           routers, repeater, gateways and such network infrastructure.
      
         - New subdriver for the NXP (former Freescale) i.MX 6ULL. This SoC
           has multimedia features and target "smart devices", I guess in-car
           entertainment, in-flight entertainment, industrial control panels
           etc.
      
        General improvements:
      
         - Incremental improvements on the SH-PFC subdrivers for things like
           the CAN bus.
      
         - Enable the glitch filter on Baytrail GPIOs used for interrupts.
      
         - Proper handling of pins to GPIO ranges on the Semtec SX150X
      
         - An IRQ setup ordering fix on MCP23S08.
      
         - A good set of janitorial coding style fixes"
      
      * tag 'pinctrl-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (102 commits)
        pinctrl: mcp23s08: fix irq setup order
        pinctrl: Forward declare struct device
        pinctrl: sunxi: Use of_clk_get_parent_count() instead of open coding
        pinctrl: stm32: add STM32F769 MCU support
        pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping
        pinctrl: sx150x: Register pinctrl before adding the gpiochip
        pinctrl: sx150x: Unregister the pinctrl on release
        pinctrl: ingenic: Remove redundant dev_err call in ingenic_pinctrl_probe()
        pinctrl: sprd: Use seq_putc() in sprd_pinconf_group_dbg_show()
        pinctrl: pinmux: Use seq_putc() in pinmux_pins_show()
        pinctrl: abx500: Use seq_putc() in abx500_gpio_dbg_show()
        pinctrl: mediatek: mt7622: align error handling of mtk_hw_get_value call
        pinctrl: mediatek: mt7622: fix potential uninitialized value being returned
        pinctrl: uniphier: refactor drive strength get/set functions
        pinctrl: imx7ulp: constify struct imx_cfg_params_decode
        pinctrl: imx: constify struct imx_pinctrl_soc_info
        pinctrl: imx7d: simplify imx7d_pinctrl_probe
        pinctrl: imx: use struct imx_pinctrl_soc_info as a const
        pinctrl: sunxi-pinctrl: fix pin funtion can not be match correctly.
        pinctrl: qcom: Add msm8998 pinctrl driver
        ...
      ef991796
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · bf644990
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Not much this cycle. I've pushed the at32ap700x removal late but it is
        unlikely to cause any issues.
      
        Summary:
      
        Subsystem:
         - Move ABI documentation to Documentation/ABI
      
        New driver:
         - NXP i.MX53 SRTC
         - Chrome OS EC RTC
      
        Drivers:
         - Remove at32ap700x
         - Many fixes in various error paths"
      
      * tag 'rtc-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
        rtc: remove rtc-at32ap700x
        Documentation: rtc: move iotcl interface documentation to ABI
        Documentation: rtc: add sysfs file permissions
        Documentation: rtc: move sysfs documentation to ABI
        rtc: mxc_v2: remove __exit annotation
        rtc: mxc_v2: Remove unnecessary platform_get_resource() error check
        rtc: add mxc driver for i.MX53 SRTC
        dt-bindings: rtc: add bindings for i.MX53 SRTC
        rtc: r7301: Fix a possible sleep-in-atomic bug in rtc7301_set_time
        rtc: r7301: Fix a possible sleep-in-atomic bug in rtc7301_read_time
        rtc: omap: fix unbalanced clk_prepare_enable/clk_disable_unprepare
        rtc: ac100: Fix multiple race conditions
        rtc: sun6i: ensure rtc is kfree'd on error
        rtc: cros-ec: add cros-ec-rtc driver.
        mfd: cros_ec: Introduce RTC commands and events definitions.
        rtc: stm32: Fix copyright
        rtc: Remove unused RTC_DEVICE_NAME_SIZE
        rtc: r9701: Remove r9701_remove function
        rtc: brcmstb-waketimer: fix error handling in brcmstb_waketmr_probe()
      bf644990
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · b89e32cc
      Linus Torvalds authored
      Pull alpha updates from Matt Turner:
       "A few small fixes and clean ups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: fix crash if pthread_create races with signal delivery
        alpha: fix formating of stack content
        alpha: fix reboot on Avanti platform
        alpha: deprecate pci_get_bus_and_slot()
        alpha: Fix mixed up args in EXC macro in futex operations
        alpha: osf_sys.c: use timespec64 where appropriate
        alpha: osf_sys.c: fix put_tv32 regression
        alpha: make thread_saved_pc static
        alpha: make XTABS equivalent to TAB3
      b89e32cc
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 03f51d4e
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Highlights:
      
         - Enable support for memory protection keys aka "pkeys" on Power7/8/9
           when using the hash table MMU.
      
         - Extend our interrupt soft masking to support masking PMU interrupts
           as well as "normal" interrupts, and then use that to implement
           local_t for a ~4x speedup vs the current atomics-based
           implementation.
      
         - A new driver "ocxl" for "Open Coherent Accelerator Processor
           Interface (OpenCAPI)" devices.
      
         - Support for new device tree properties on PowerVM to describe
           hotpluggable memory and devices.
      
         - Add support for CLOCK_{REALTIME/MONOTONIC}_COARSE to the 64-bit
           VDSO.
      
         - Freescale updates from Scott: fixes for CPM GPIO and an FSL PCI
           erratum workaround, plus a minor cleanup patch.
      
        As well as quite a lot of other changes all over the place, and small
        fixes and cleanups as always.
      
        Thanks to: Alan Modra, Alastair D'Silva, Alexey Kardashevskiy,
        Alistair Popple, Andreas Schwab, Andrew Donnellan, Aneesh Kumar K.V,
        Anju T Sudhakar, Anshuman Khandual, Anton Blanchard, Arnd Bergmann,
        Balbir Singh, Benjamin Herrenschmidt, Bhaktipriya Shridhar, Bryant G.
        Ly, Cédric Le Goater, Christophe Leroy, Christophe Lombard, Cyril Bur,
        David Gibson, Desnes A. Nunes do Rosario, Dmitry Torokhov, Frederic
        Barrat, Geert Uytterhoeven, Guilherme G. Piccoli, Gustavo A. R. Silva,
        Gustavo Romero, Ivan Mikhaylov, Joakim Tjernlund, Joe Perches, Josh
        Poimboeuf, Juan J. Alvarez, Julia Cartwright, Kamalesh Babulal,
        Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael
        Bringmann, Michael Hanselmann, Michael Neuling, Nathan Fontenot,
        Naveen N. Rao, Nicholas Piggin, Paul Mackerras, Philippe Bergheaud,
        Ram Pai, Russell Currey, Santosh Sivaraj, Scott Wood, Seth Forshee,
        Simon Guo, Stewart Smith, Sukadev Bhattiprolu, Thiago Jung Bauermann,
        Vaibhav Jain, Vasyl Gomonovych"
      
      * tag 'powerpc-4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (199 commits)
        powerpc/mm/radix: Fix build error when RADIX_MMU=n
        macintosh/ams-input: Use true and false for boolean values
        macintosh: change some data types from int to bool
        powerpc/watchdog: Print the NIP in soft_nmi_interrupt()
        powerpc/watchdog: regs can't be null in soft_nmi_interrupt()
        powerpc/watchdog: Tweak watchdog printks
        powerpc/cell: Remove axonram driver
        rtc-opal: Fix handling of firmware error codes, prevent busy loops
        powerpc/mpc52xx_gpt: make use of raw_spinlock variants
        macintosh/adb: Properly mark continued kernel messages
        powerpc/pseries: Fix cpu hotplug crash with memoryless nodes
        powerpc/numa: Ensure nodes initialized for hotplug
        powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
        powerpc/kernel: Block interrupts when updating TIDR
        powerpc/powernv/idoa: Remove unnecessary pcidev from pci_dn
        powerpc/mm/nohash: do not flush the entire mm when range is a single page
        powerpc/pseries: Add Initialization of VF Bars
        powerpc/pseries/pci: Associate PEs to VFs in configure SR-IOV
        powerpc/eeh: Add EEH notify resume sysfs
        powerpc/eeh: Add EEH operations to notify resume
        ...
      03f51d4e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 367b0df1
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - StrongARM SA1111 updates to modernise and remove cruft
      
       - Add StrongARM gpio drivers for board GPIOs
      
       - Verify size of zImage is what we expect to avoid issues with
         appended DTB
      
       - nommu updates from Vladimir Murzin
      
       - page table read-write-execute checking from Jinbum Park
      
       - Broadcom Brahma-B15 cache updates from Florian Fainelli
      
       - Avoid failure with kprobes test caused by inappropriately
         placed kprobes
      
       - Remove __memzero optimisation (which was incorrectly being
         used directly by some drivers)
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (32 commits)
        ARM: 8745/1: get rid of __memzero()
        ARM: 8744/1: don't discard memblock for kexec
        ARM: 8743/1: bL_switcher: add MODULE_LICENSE tag
        ARM: 8742/1: Always use REFCOUNT_FULL
        ARM: 8741/1: B15: fix unused label warnings
        ARM: 8740/1: NOMMU: Make sure we do not hold stale data in mem[] array
        ARM: 8739/1: NOMMU: Setup VBAR/Hivecs for secondaries cores
        ARM: 8738/1: Disable CONFIG_DEBUG_VIRTUAL for NOMMU
        ARM: 8737/1: mm: dump: add checking for writable and executable
        ARM: 8736/1: mm: dump: make the page table dumping seq_file
        ARM: 8735/1: mm: dump: make page table dumping reusable
        ARM: sa1100/neponset: add GPIO drivers for control and modem registers
        ARM: sa1100/assabet: add BCR/BSR GPIO driver
        ARM: 8734/1: mm: idmap: Mark variables as ro_after_init
        ARM: 8733/1: hw_breakpoint: Mark variables as __ro_after_init
        ARM: 8732/1: NOMMU: Allow userspace to access background MPU region
        ARM: 8727/1: MAINTAINERS: Update brcmstb entries to cover B15 code
        ARM: 8728/1: B15: Register reboot notifier for KEXEC
        ARM: 8730/1: B15: Add suspend/resume hooks
        ARM: 8726/1: B15: Add CPU hotplug awareness
        ...
      367b0df1
    • Linus Torvalds's avatar
      Merge tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 44644391
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
      
       - Fix endian handling and Kconfig dependency
      
       - Fix iounmap prototype
      
      * tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Setup proper dependency for optimized lib functions
        microblaze: fix iounmap prototype
        microblaze: fix endian handling
      44644391
    • Mimi Zohar's avatar
      ima: re-initialize iint->atomic_flags · e2598077
      Mimi Zohar authored
      Intermittently security.ima is not being written for new files.  This
      patch re-initializes the new slab iint->atomic_flags field before
      freeing it.
      
      Fixes: commit 0d73a552 ("ima: re-introduce own integrity cache lock")
      Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Signed-off-by: default avatarJames Morris <jmorris@namei.org>
      e2598077
    • Mimi Zohar's avatar
      maintainers: update trusted keys · 7825cd83
      Mimi Zohar authored
      Adding James Bottomley as the new maintainer for trusted keys.
      Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Signed-off-by: default avatarJames Morris <jmorris@namei.org>
      7825cd83
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.16' of git://people.freedesktop.org/~airlied/linux · 4bf772b1
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This seems to have been a comparatively quieter merge window, I assume
        due to holidays etc. The "biggest" change is AMD header cleanups, which
        merge/remove a bunch of them. The AMD gpu scheduler is now being made generic
        with the etnaviv driver wanting to reuse the code, hopefully other drivers
        can go in the same direction.
      
        Otherwise it's the usual lots of stuff in i915/amdgpu, not so much stuff
        elsewhere.
      
        Core:
         - Add .last_close and .output_poll_changed helpers to reduce driver footprints
         - Fix plane clipping
         - Improved debug printing support
         - Add panel orientation property
         - Update edid derived properties at edid setting
         - Reduction in fbdev driver footprint
         - Move amdgpu scheduler into core for other drivers to use.
      
        i915:
         - Selftest and IGT improvements
         - Fast boot prep work on IPS, pipe config
         - HW workarounds for Cannonlake, Geminilake
         - Cannonlake clock and HDMI2.0 fixes
         - GPU cache invalidation and context switch improvements
         - Display planes cleanup
         - New PMU interface for perf queries
         - New firmware support for KBL/SKL
         - Geminilake HW workaround for perforamce
         - Coffeelake stolen memory improvements
         - GPU reset robustness work
         - Cannonlake horizontal plane flipping
         - GVT work
      
        amdgpu/radeon:
         - RV and Vega header file cleanups (lots of lines gone!)
         - TTM operation context support
         - 48-bit GPUVM support for Vega/RV
         - ECC support for Vega
         - Resizeable BAR support
         - Multi-display sync support
         - Enable swapout for reserved BOs during allocation
         - S3 fixes on Raven
         - GPU reset cleanup and fixes
         - 2+1 level GPU page table
      
        amdkfd:
         - GFX7/8 SDMA user queues support
         - Hardware scheduling for multiple processes
         - dGPU prep work
      
        rcar:
         - Added R8A7743/5 support
         - System suspend/resume support
      
        sun4i:
         - Multi-plane support for YUV formats
         - A83T and LVDS support
      
        msm:
         - Devfreq support for GPU
      
        tegra:
         - Prep work for adding Tegra186 support
         - Tegra186 HDMI support
         - HDMI2.0 and zpos support by using generic helpers
      
        tilcdc:
         - Misc fixes
      
        omapdrm:
         - Support memory bandwidth limits
         - DSI command mode panel cleanups
         - DMM error handling
      
        exynos:
         - drop the old IPP subdriver.
      
        etnaviv:
         - Occlusion query fixes
         - Job handling fixes
         - Prep work for hooking in gpu scheduler
      
        armada:
         - Move closer to atomic modesetting
         - Allow disabling primary plane if overlay is full screen
      
        imx:
         - Format modifier support
         - Add tile prefetch to PRE
         - Runtime PM support for PRG
      
        ast:
         - fix LUT loading"
      
      * tag 'drm-for-v4.16' of git://people.freedesktop.org/~airlied/linux: (1471 commits)
        drm/ast: Load lut in crtc_commit
        drm: Check for lessee in DROP_MASTER ioctl
        drm: fix gpu scheduler link order
        drm/amd/display: Demote error print to debug print when ATOM impl missing
        dma-buf: fix reservation_object_wait_timeout_rcu once more v2
        drm/amdgpu: Avoid leaking PM domain on driver unbind (v2)
        drm/amd/amdgpu: Add Polaris version check
        drm/amdgpu: Reenable manual GPU reset from sysfs
        drm/amdgpu: disable MMHUB power gating on raven
        drm/ttm: Don't unreserve swapped BOs that were previously reserved
        drm/ttm: Don't add swapped BOs to swap-LRU list
        drm/amdgpu: only check for ECC on Vega10
        drm/amd/powerplay: Fix smu_table_entry.handle type
        drm/ttm: add VADDR_FLAG_UPDATED_COUNT to correctly update dma_page global count
        drm: Fix PANEL_ORIENTATION_QUIRKS breaking the Kconfig DRM menuconfig
        drm/radeon: fill in rb backend map on evergreen/ni.
        drm/amdgpu/gfx9: fix ngg enablement to clear gds reserved memory (v2)
        drm/ttm: only free pages rather than update global memory count together
        drm/amdgpu: fix CPU based VM updates
        drm/amdgpu: fix typo in amdgpu_vce_validate_bo
        ...
      4bf772b1