1. 03 Feb, 2018 15 commits
    • 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
    • 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
  2. 02 Feb, 2018 12 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
    • 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
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · adbc128f
      Linus Torvalds authored
      Pull ARM SoC platform updates from Arnd Bergmann:
       "These are mostly minor bugfixes, cleanup and many defconfig updates to
        support added drivers. In particular OMAP and PXA keep cleaning up the
        legacy code base, as usual.
      
        Nvidia adds some more SoC support code for Tegra 186.
      
        For the first time on years, we are actually adding a non-DT platform
        for the EP93xx based Liebherr controller BK3.1. It's a minor variation
        of the EP93xx reference design and in active use, while EP93xx
        apparently doesn't have enough new development to have any device tree
        support"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (73 commits)
        ARM: omap: hwmod: fix section mismatch warnings
        ARM: pxa/tosa-bt: add MODULE_LICENSE tag
        arm64: defconfig: enable CONFIG_ACPI_APEI_EINJ
        arm64: defconfig: enable EDAC GHES option
        arm64: defconfig: enable CONFIG_ACPI_APEI_MEMORY_FAILURE
        ARM: imx_v6_v7_defconfig: enable CONFIG_CPU_FREQ_STAT
        Wind down ARM/TANGO port
        ARM: davinci: constify gpio_led
        ARM: davinci: drop unneeded newline
        soc: Add SoC driver for Gemini
        ARM: SAMSUNG: Add SPDX license identifiers
        ARM: S5PV210: Add SPDX license identifiers
        ARM: S3C64XX: Add SPDX license identifiers
        ARM: S3C24XX: Add SPDX license identifiers
        ARM: EXYNOS: Add SPDX license identifiers
        ARM: imx: remove unused imx3 pm definitions
        ARM: imx: don't abort MMDC probe if power saving status doesn't match
        ARM: imx_v6_v7_defconfig: enable RTC_DRV_MXC_V2
        ARM: imx_v6_v7_defconfig: Add missing config for DART-MX6 SoM
        ARM: davinci: Use PTR_ERR_OR_ZERO()
        ...
      adbc128f
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 537433b6
      Linus Torvalds authored
      Pull ARM SoC device tree updates from Arnd Bergmann:
       "We get a moderate number of new machines this time, and only one new
        SoC variant (Actions S700):
      
        Actions:
         - S700 Soc and CubieBoard7 development board
         - Allo.com Sparky Single-board-computer
      
        Allwinner:
         - Orange Pi R1 development board
         - Libre Computer Board ALL-H3-CC H3 single-board computer
      
        ASpeed ast2x00:
         - Witherspoon: OpenPower Power9 server manufactured by IBM that uses the ASPEED ast2500
         - Zaius: OpenPower Power9 server manufactured by Invatech that uses the ASPEED ast2500
         - Q71L: Intel Xeon server manufactured by Qanta that uses the ASPEED ast2400
      
        AT91:
         - Axentia Nattis/Natte digital signage
         - sama5d2 PTC-ek Evaluation board
      
        Freescale/NXP i.MX:
         - SolidRun Humminboard2 development board
         - Variscite DART-MX6 SoM and Carrier-board
         - Technologic TS-4600 and TS-7970 development board
         - Toradex Colibri iMX7D SoM board
         - v1.5 variant of Solidrun Cubox-i and Hummingboard
      
        Freescale/NXP Layerscape:
         - Moxa UC-8410A Series industrial computer
      
        Gemini:
         - D-Link DNS-313 NAS enclosure
      
        OMAP:
         - LogicPD OMAP35xx SOM-LV devkit
         - LogicPD OMAP35xx Torpedo devkit
      
        Renesas:
         - r8a77970 (V3M) Starter Kit board
         - r8a7795 (M3-W) Salvator-XS board
      
        We finally managed to get the dtc warnings under control, with no more
        build-time warnings for bad device tree files. This includes fixes for
        the majority of platforms, including nomadik, samsung, lpc32xx, STi,
        spear, mediatek, freescale, qcom, realview, keystone, omap, kirkwood,
        renesas, hisilicon, and broadcom.
      
        Files get rearranged on a few platforms, in particular the Marvell
        Armada 7K/8K device tree files are changed in preparation for future
        SoC support, based on more than two of the same chips in one package,
        and some boards get renamed for oxnas for consistency.
      
        Finally, many existing SoCs gain descriptions for additional on-chip
        devices that we can now support with kernel drivers:
      
         - Allwinner A83t (drm, ethernet, i2c, ...), H3/H5 (USB-OTG)
         - Amlogic AXG family (clk, pinctrl, pwm, ...), and others (vpu, hdmi)
         - Aspeed clk controller support
         - Freescale LS1088A, LS1021A device support
         - Gemini Ethernet, PCI, TVE, panel
         - Keystone gpio, qspi, more uarts
         - Mediatek cpufreq, regulator, clock, reset
         - Marvell thermal, cpufreq, nand
         - Renesas SMP, thermal, timer, PWM, sound, phy, ipmmu
         - Rockchip Mipi, GPU, display
         - Samsung Exynos5433 PMU, power domain, nfc
         - Spreadtrum: sc9860 clocks
         - Tegra TX2 PSDI, HDMI, I2C,SMMU, display, fuse, ..."
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (690 commits)
        arm64: dts: stratix10: fix SPI settings
        ARM: dts: socfpga: add i2c reset signals
        arm64: dts: stratix10: add USB ECC reset bit
        arm64: dts: stratix10: enable USB on the devkit
        ARM: dts: socfpga: disable over-current for Arria10 USB devkit
        ARM: dts: Nokia N9: add support for up/down keys in the dts
        ARM: dts: nomadik: add interrupt-parent for clcd
        ARM: dts: Add ethernet to a bunch of platforms
        ARM: dts: Add ethernet to the Gemini SoC
        ARM: dts: rename oxnas dts files
        ARM: dts: s5pv210: add interrupt-parent for ohci
        ARM: lpc3250: fix uda1380 gpio numbers
        ARM: dts: STi: Add gpio polarity for "hdmi,hpd-gpio" property
        ARM: dts: dra7: Reduce shut down temperature of non-cpu thermal zones
        ARM: dts: n900: Add aliases for lcd and tvout displays
        ARM: dts: Update ti-sysc data for existing users
        ARM: dts: Fix smartreflex compatible for omap3 shared mpu-iva instance
        arm64: dts: marvell: armada-80x0: Fix pinctrl compatible string
        arm: spear13xx: Fix spics gpio controller's warning
        arm: spear13xx: Fix dmas cells
        ...
      537433b6
  3. 01 Feb, 2018 13 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · ab486bc9
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Add a console_msg_format command line option:
      
           The value "default" keeps the old "[time stamp] text\n" format. The
           value "syslog" allows to see the syslog-like "<log
           level>[timestamp] text" format.
      
           This feature was requested by people doing regression tests, for
           example, 0day robot. They want to have both filtered and full logs
           at hands.
      
       - Reduce the risk of softlockup:
      
           Pass the console owner in a busy loop.
      
           This is a new approach to the old problem. It was first proposed by
           Steven Rostedt on Kernel Summit 2017. It marks a context in which
           the console_lock owner calls console drivers and could not sleep.
           On the other side, printk() callers could detect this state and use
           a busy wait instead of a simple console_trylock(). Finally, the
           console_lock owner checks if there is a busy waiter at the end of
           the special context and eventually passes the console_lock to the
           waiter.
      
           The hand-off works surprisingly well and helps in many situations.
           Well, there is still a possibility of the softlockup, for example,
           when the flood of messages stops and the last owner still has too
           much to flush.
      
           There is increasing number of people having problems with
           printk-related softlockups. We might eventually need to get better
           solution. Anyway, this looks like a good start and promising
           direction.
      
       - Do not allow to schedule in console_unlock() called from printk():
      
           This reverts an older controversial commit. The reschedule helped
           to avoid softlockups. But it also slowed down the console output.
           This patch is obsoleted by the new console waiter logic described
           above. In fact, the reschedule made the hand-off less effective.
      
       - Deprecate "%pf" and "%pF" format specifier:
      
           It was needed on ia64, ppc64 and parisc64 to dereference function
           descriptors and show the real function address. It is done
           transparently by "%ps" and "pS" format specifier now.
      
           Sergey Senozhatsky found that all the function descriptors were in
           a special elf section and could be easily detected.
      
       - Remove printk_symbol() API:
      
           It has been obsoleted by "%pS" format specifier, and this change
           helped to remove few continuous lines and a less intuitive old API.
      
       - Remove redundant memsets:
      
           Sergey removed unnecessary memset when processing printk.devkmsg
           command line option.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
        printk: drop redundant devkmsg_log_str memsets
        printk: Never set console_may_schedule in console_trylock()
        printk: Hide console waiter logic into helpers
        printk: Add console owner and waiter logic to load balance console writes
        kallsyms: remove print_symbol() function
        checkpatch: add pF/pf deprecation warning
        symbol lookup: introduce dereference_symbol_descriptor()
        parisc64: Add .opd based function descriptor dereference
        powerpc64: Add .opd based function descriptor dereference
        ia64: Add .opd based function descriptor dereference
        sections: split dereference_function_descriptor()
        openrisc: Fix conflicting types for _exext and _stext
        lib: do not use print_symbol()
        irq debug: do not use print_symbol()
        sysfs: do not use print_symbol()
        drivers: do not use print_symbol()
        x86: do not use print_symbol()
        unicore32: do not use print_symbol()
        sh: do not use print_symbol()
        mn10300: do not use print_symbol()
        ...
      ab486bc9
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.16-rc1' of git://github.com/awilliam/linux-vfio · 34b1cf60
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Mask INTx from user if pdev->irq is zero (Alexey Kardashevskiy)
      
       - Capability helper cleanup (Alex Williamson)
      
       - Allow mmaps overlapping MSI-X vector table with region capability
         exposing this feature (Alexey Kardashevskiy)
      
       - mdev static cleanups (Xiongwei Song)
      
      * tag 'vfio-v4.16-rc1' of git://github.com/awilliam/linux-vfio:
        vfio: mdev: make a couple of functions and structure vfio_mdev_driver static
        vfio-pci: Allow mapping MSIX BAR
        vfio: Simplify capability helper
        vfio-pci: Mask INTx if a device is not capabable of enabling it
      34b1cf60
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 27529c89
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "There's not much changes for the tracing system this release. Mostly
        small clean ups and fixes.
      
        The biggest change is to how bprintf works. bprintf is used by
        trace_printk() to just save the format and args of a printf call, and
        the formatting is done when the trace buffer is read. This is done to
        keep the formatting out of the fast path (this was recommended by
        you). The issue is when arguments are de-referenced.
      
        If a pointer is saved, and the format has something like "%*pbl", when
        the buffer is read, it will de-reference the argument then. The
        problem is if the data no longer exists. This can cause the kernel to
        oops.
      
        The fix for this was to make these de-reference pointes do the
        formatting at the time it is called (the fast path), as this
        guarantees that the data exists (and doesn't change later)"
      
      * tag 'trace-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        vsprintf: Do not have bprintf dereference pointers
        ftrace: Mark function tracer test functions noinline/noclone
        trace_uprobe: Display correct offset in uprobe_events
        tracing: Make sure the parsed string always terminates with '\0'
        tracing: Clear parser->idx if only spaces are read
        tracing: Detect the string nul character when parsing user input string
      27529c89
    • Linus Torvalds's avatar
      Merge branch 'KASAN-read_word_at_a_time' · 8e44e660
      Linus Torvalds authored
      Merge KASAN word-at-a-time fixups from Andrey Ryabinin.
      
      The word-at-a-time optimizations have caused headaches for KASAN, since
      the whole point is that we access byte streams in bigger chunks, and
      KASAN can be unhappy about the potential extra access at the end of the
      string.
      
      We used to have a horrible hack in dcache, and then people got
      complaints from the strscpy() case.  This fixes it all up properly, by
      adding an explicit helper for the "access byte stream one word at a
      time" case.
      
      * emailed patches from Andrey Ryabinin <aryabinin@virtuozzo.com>:
        fs: dcache: Revert "manually unpoison dname after allocation to shut up kasan's reports"
        fs/dcache: Use read_word_at_a_time() in dentry_string_cmp()
        lib/strscpy: Shut up KASAN false-positives in strscpy()
        compiler.h: Add read_word_at_a_time() function.
        compiler.h, kasan: Avoid duplicating __read_once_size_nocheck()
      8e44e660
    • Andrey Ryabinin's avatar
      fs: dcache: Revert "manually unpoison dname after allocation to shut up kasan's reports" · babcbbc7
      Andrey Ryabinin authored
      This reverts commit df4c0e36.
      
      It's no longer needed since dentry_string_cmp() now uses
      read_word_at_a_time() to avoid kasan's reports.
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      babcbbc7
    • Andrey Ryabinin's avatar
      fs/dcache: Use read_word_at_a_time() in dentry_string_cmp() · bfe7aa6c
      Andrey Ryabinin authored
      dentry_string_cmp() performs the word-at-a-time reads from 'cs' and may
      read slightly more than it was requested in kmallac().  Normally this
      would make KASAN to report out-of-bounds access, but this was
      workarounded by commit df4c0e36 ("fs: dcache: manually unpoison
      dname after allocation to shut up kasan's reports").
      
      This workaround is not perfect, since it allows out-of-bounds access to
      dentry's name for all the code, not just in dentry_string_cmp().
      
      So it would be better to use read_word_at_a_time() instead and revert
      commit df4c0e36.
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bfe7aa6c
    • Andrey Ryabinin's avatar
      lib/strscpy: Shut up KASAN false-positives in strscpy() · 1a3241ff
      Andrey Ryabinin authored
      strscpy() performs the word-at-a-time optimistic reads.  So it may may
      access the memory past the end of the object, which is perfectly fine
      since strscpy() doesn't use that (past-the-end) data and makes sure the
      optimistic read won't cross a page boundary.
      
      Use new read_word_at_a_time() to shut up the KASAN.
      
      Note that this potentially could hide some bugs.  In example bellow,
      stscpy() will copy more than we should (1-3 extra uninitialized bytes):
      
              char dst[8];
              char *src;
      
              src = kmalloc(5, GFP_KERNEL);
              memset(src, 0xff, 5);
              strscpy(dst, src, 8);
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a3241ff
    • Andrey Ryabinin's avatar
      compiler.h: Add read_word_at_a_time() function. · 7f1e541f
      Andrey Ryabinin authored
      Sometimes we know that it's safe to do potentially out-of-bounds access
      because we know it won't cross a page boundary.  Still, KASAN will
      report this as a bug.
      
      Add read_word_at_a_time() function which is supposed to be used in such
      cases.  In read_word_at_a_time() KASAN performs relaxed check - only the
      first byte of access is validated.
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7f1e541f
    • Andrey Ryabinin's avatar
      compiler.h, kasan: Avoid duplicating __read_once_size_nocheck() · bdb5ac80
      Andrey Ryabinin authored
      Instead of having two identical __read_once_size_nocheck() functions
      with different attributes, consolidate all the difference in new macro
      __no_kasan_or_inline and use it. No functional changes.
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bdb5ac80
    • Alexander Monakov's avatar
      net: pxa168_eth: add netconsole support · 743ffffe
      Alexander Monakov authored
      This implements ndo_poll_controller callback which is necessary to
      enable netconsole.
      Signed-off-by: default avatarAlexander Monakov <amonakov@ispras.ru>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      743ffffe
    • Eric Dumazet's avatar
      net: igmp: add a missing rcu locking section · e7aadb27
      Eric Dumazet authored
      Newly added igmpv3_get_srcaddr() needs to be called under rcu lock.
      
      Timer callbacks do not ensure this locking.
      
      =============================
      WARNING: suspicious RCU usage
      4.15.0+ #200 Not tainted
      -----------------------------
      ./include/linux/inetdevice.h:216 suspicious rcu_dereference_check() usage!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 2, debug_locks = 1
      3 locks held by syzkaller616973/4074:
       #0:  (&mm->mmap_sem){++++}, at: [<00000000bfce669e>] __do_page_fault+0x32d/0xc90 arch/x86/mm/fault.c:1355
       #1:  ((&im->timer)){+.-.}, at: [<00000000619d2f71>] lockdep_copy_map include/linux/lockdep.h:178 [inline]
       #1:  ((&im->timer)){+.-.}, at: [<00000000619d2f71>] call_timer_fn+0x1c6/0x820 kernel/time/timer.c:1316
       #2:  (&(&im->lock)->rlock){+.-.}, at: [<000000005f833c5c>] spin_lock_bh include/linux/spinlock.h:315 [inline]
       #2:  (&(&im->lock)->rlock){+.-.}, at: [<000000005f833c5c>] igmpv3_send_report+0x98/0x5b0 net/ipv4/igmp.c:600
      
      stack backtrace:
      CPU: 0 PID: 4074 Comm: syzkaller616973 Not tainted 4.15.0+ #200
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Call Trace:
       <IRQ>
       __dump_stack lib/dump_stack.c:17 [inline]
       dump_stack+0x194/0x257 lib/dump_stack.c:53
       lockdep_rcu_suspicious+0x123/0x170 kernel/locking/lockdep.c:4592
       __in_dev_get_rcu include/linux/inetdevice.h:216 [inline]
       igmpv3_get_srcaddr net/ipv4/igmp.c:329 [inline]
       igmpv3_newpack+0xeef/0x12e0 net/ipv4/igmp.c:389
       add_grhead.isra.27+0x235/0x300 net/ipv4/igmp.c:432
       add_grec+0xbd3/0x1170 net/ipv4/igmp.c:565
       igmpv3_send_report+0xd5/0x5b0 net/ipv4/igmp.c:605
       igmp_send_report+0xc43/0x1050 net/ipv4/igmp.c:722
       igmp_timer_expire+0x322/0x5c0 net/ipv4/igmp.c:831
       call_timer_fn+0x228/0x820 kernel/time/timer.c:1326
       expire_timers kernel/time/timer.c:1363 [inline]
       __run_timers+0x7ee/0xb70 kernel/time/timer.c:1666
       run_timer_softirq+0x4c/0x70 kernel/time/timer.c:1692
       __do_softirq+0x2d7/0xb85 kernel/softirq.c:285
       invoke_softirq kernel/softirq.c:365 [inline]
       irq_exit+0x1cc/0x200 kernel/softirq.c:405
       exiting_irq arch/x86/include/asm/apic.h:541 [inline]
       smp_apic_timer_interrupt+0x16b/0x700 arch/x86/kernel/apic/apic.c:1052
       apic_timer_interrupt+0xa9/0xb0 arch/x86/entry/entry_64.S:938
      
      Fixes: a46182b0 ("net: igmp: Use correct source address on IGMPv3 reports")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e7aadb27
    • Desnes Augusto Nunes do Rosario's avatar
      ibmvnic: fix firmware version when no firmware level has been provided by the VIOS server · a107311d
      Desnes Augusto Nunes do Rosario authored
      Older versions of VIOS servers do not send the firmware level in the VPD
      buffer for the ibmvnic driver. Thus, not only the current message is mis-
      leading but the firmware version in the ethtool will be NULL. Therefore,
      this patch fixes the firmware string and its warning.
      
      Fixes: 4e6759be ("ibmvnic: Feature implementation of VPD for the ibmvnic driver")
      Signed-off-by: default avatarDesnes A. Nunes do Rosario <desnesn@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a107311d
    • Colin Ian King's avatar
      vmxnet3: remove redundant initialization of pointer 'rq' · 5e264e2b
      Colin Ian King authored
      Pointer rq is being initialized but this value is never read, it
      is being updated inside a for-loop. Remove the initialization and
      move it into the scope of the for-loop.
      
      Cleans up clang warning:
      drivers/net/vmxnet3/vmxnet3_drv.c:2763:27: warning: Value stored
      to 'rq' during its initialization is never read
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Acked-by: default avatarShrikrishna Khare <skhare@vmware.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e264e2b