Skip to content
  1. Feb 07, 2018
  2. Feb 04, 2018
    • 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
    • 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: ma...
      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
  3. Feb 03, 2018
    • 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: default avatar <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
    • 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 Mo...
      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: S...
      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
  4. Feb 02, 2018
    • 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
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 3879ae65
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "The core framework has a handful of patches this time around, mostly
        due to the clk rate protection support added by Jerome Brunet.
      
        This feature will allow consumers to lock in a certain rate on the
        output of a clk so that things like audio playback don't hear pops
        when the clk frequency changes due to shared parent clks changing
        rates. Currently the clk API doesn't guarantee the rate of a clk stays
        at the rate you request after clk_set_rate() is called, so this new
        API will allow drivers to express that requirement.
      
        Beyond this, the core got some debugfs pretty printing patches and a
        couple minor non-critical fixes.
      
        Looking outside of the core framework diff we have some new driver
        additions and the removal of a legacy TI clk driver. Both of these hit
        high in the dirstat. Also, the removal of the asm-generic/clkdev.h
        file causes small one-liners in all the architecture Kbuild files.
      
        Overall, the driver diff seems to be the normal stuff that comes all
        the time to fix little problems here and there and to support new
        hardware.
      
        Summary:
      
        Core:
         - Clk rate protection
         - Symbolic clk flags in debugfs output
         - Clk registration enabled clks while doing bookkeeping updates
      
        New Drivers:
         - Spreadtrum SC9860
         - HiSilicon hi3660 stub
         - Qualcomm A53 PLL, SPMI clkdiv, and MSM8916 APCS
         - Amlogic Meson-AXG
         - ASPEED BMC
      
        Removed Drivers:
         - TI OMAP 3xxx legacy clk (non-DT) support
         - asm*/clkdev.h got removed (not really a driver)
      
        Updates:
         - Renesas FDP1-0 module clock on R-Car M3-W
         - Renesas LVDS module clock on R-Car V3M
         - Misc fixes to pr_err() prints
         - Qualcomm MSM8916 audio fixes
         - Qualcomm IPQ8074 rounded out support for more peripherals
         - Qualcomm Alpha PLL variants
         - Divider code was using container_of() on bad pointers
         - Allwinner DE2 clks on H3
         - Amlogic minor data fixes and dropping of CLK_IGNORE_UNUSED
         - Mediatek clk driver compile test support
         - AT91 PMC clk suspend/resume restoration support
         - PLL issues fixed on si5351
         - Broadcom IProc PLL calculation updates
         - DVFS support for Armada mvebu CPU clks
         - Allwinner fixed post-divider support
         - TI clkctrl fixes and support for newer SoCs"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (125 commits)
        clk: aspeed: Handle inverse polarity of USB port 1 clock gate
        clk: aspeed: Fix return value check in aspeed_cc_init()
        clk: aspeed: Add reset controller
        clk: aspeed: Register gated clocks
        clk: aspeed: Add platform driver and register PLLs
        clk: aspeed: Register core clocks
        clk: Add clock driver for ASPEED BMC SoCs
        clk: mediatek: adjust dependency of reset.c to avoid unexpectedly being built
        clk: fix reentrancy of clk_enable() on UP systems
        clk: meson-axg: fix potential NULL dereference in axg_clkc_probe()
        clk: Simplify debugfs registration
        clk: Fix debugfs_create_*() usage
        clk: Show symbolic clock flags in debugfs
        clk: renesas: r8a7796: Add FDP clock
        clk: Move __clk_{get,put}() into private clk.h API
        clk: sunxi: Use CLK_IS_CRITICAL flag for critical clks
        clk: Improve flags doc for of_clk_detect_critical()
        arch: Remove clkdev.h asm-generic from Kbuild
        clk: sunxi-ng: a83t: Add M divider to TCON1 clock
        clk: Prepare to remove asm-generic/clkdev.h
        ...
      3879ae65
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fe53d144
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "A number of new drivers get added this time, along with many
        low-priority bugfixes. The most interesting changes by subsystem are:
      
        bus drivers:
         - Updates to the Broadcom bus interface driver to support newer SoC
           types
         - The TI OMAP sysc driver now supports updated DT bindings
      
        memory controllers:
         - A new driver for Tegra186 gets added
         - A new driver for the ti-emif sram, to allow relocating
           suspend/resume handlers there
      
        SoC specific:
         - A new driver for Qualcomm QMI, the interface to the modem on MSM
           SoCs
         - A new driver for power domains on the actions S700 SoC
         - A driver for the Xilinx Zynq VCU logicoreIP
      
        reset controllers:
         - A new driver for Amlogic Meson-AGX
         - various bug fixes
      
        tee subsystem:
         - A new user interface got added to enable asynchronous communication
           with the TEE supplicant.
         - A new method of using user space memory for communication with the
           TEE is added"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (84 commits)
        of: platform: fix OF node refcount leak
        soc: fsl: guts: Add a NULL check for devm_kasprintf()
        bus: ti-sysc: Fix smartreflex sysc mask
        psci: add CPU_IDLE dependency
        soc: xilinx: Fix Kconfig alignment
        soc: xilinx: xlnx_vcu: Use bitwise & rather than logical && on clkoutdiv
        soc: xilinx: xlnx_vcu: Depends on HAS_IOMEM for xlnx_vcu
        soc: bcm: brcmstb: Be multi-platform compatible
        soc: brcmstb: biuctrl: exit without warning on non brcmstb platforms
        Revert "soc: brcmstb: Only register SoC device on STB platforms"
        bus: omap: add MODULE_LICENSE tags
        soc: brcmstb: Only register SoC device on STB platforms
        tee: shm: Potential NULL dereference calling tee_shm_register()
        soc: xilinx: xlnx_vcu: Add Xilinx ZYNQMP VCU logicoreIP init driver
        dt-bindings: soc: xilinx: Add DT bindings to xlnx_vcu driver
        soc: xilinx: Create folder structure for soc specific drivers
        of: platform: populate /firmware/ node from of_platform_default_populate_init()
        soc: samsung: Add SPDX license identifiers
        soc: qcom: smp2p: Use common error handling code in qcom_smp2p_probe()
        tee: shm: don't put_page on null shm->pages
        ...
      fe53d144