1. 01 11月, 2018 11 次提交
  2. 31 10月, 2018 2 次提交
    • M
      net: mvpp2: Fix affinity hint allocation · a6b3a3fa
      Marc Zyngier 提交于
      The mvpp2 driver has the curious behaviour of passing a stack variable
      to irq_set_affinity_hint(), which results in the kernel exploding
      the first time anyone accesses this information. News flash: userspace
      does, and irqbalance will happily take the machine down. Great stuff.
      
      An easy fix is to track the mask within the queue_vector structure,
      and to make sure it has the same lifetime as the interrupt itself.
      
      Fixes: e531f767 ("net: mvpp2: handle cases where more CPUs are available than s/w threads")
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a6b3a3fa
    • E
      net/mlx4_en: add a missing <net/ip.h> include · 3aa8029e
      Eric Dumazet 提交于
      Abdul Haleem reported a build error on ppc :
      
      drivers/net/ethernet/mellanox/mlx4/en_rx.c:582:18: warning: `struct
      iphdr` declared inside parameter list [enabled by default]
                 struct iphdr *iph)
                        ^
      drivers/net/ethernet/mellanox/mlx4/en_rx.c:582:18: warning: its scope is
      only this definition or declaration, which is probably not what you want
      [enabled by default]
      drivers/net/ethernet/mellanox/mlx4/en_rx.c: In function
      get_fixed_ipv4_csum:
      drivers/net/ethernet/mellanox/mlx4/en_rx.c:586:20: error: dereferencing
      pointer to incomplete type
        __u8 ipproto = iph->protocol;
                          ^
      
      Fixes: 55469bc6 ("drivers: net: remove <net/busy_poll.h> inclusion when not needed")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NAbdul Haleem <abdhalee@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3aa8029e
  3. 30 10月, 2018 27 次提交
    • I
      rtnetlink: Disallow FDB configuration for non-Ethernet device · da715775
      Ido Schimmel 提交于
      When an FDB entry is configured, the address is validated to have the
      length of an Ethernet address, but the device for which the address is
      configured can be of any type.
      
      The above can result in the use of uninitialized memory when the address
      is later compared against existing addresses since 'dev->addr_len' is
      used and it may be greater than ETH_ALEN, as with ip6tnl devices.
      
      Fix this by making sure that FDB entries are only configured for
      Ethernet devices.
      
      BUG: KMSAN: uninit-value in memcmp+0x11d/0x180 lib/string.c:863
      CPU: 1 PID: 4318 Comm: syz-executor998 Not tainted 4.19.0-rc3+ #49
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0x14b/0x190 lib/dump_stack.c:113
        kmsan_report+0x183/0x2b0 mm/kmsan/kmsan.c:956
        __msan_warning+0x70/0xc0 mm/kmsan/kmsan_instr.c:645
        memcmp+0x11d/0x180 lib/string.c:863
        dev_uc_add_excl+0x165/0x7b0 net/core/dev_addr_lists.c:464
        ndo_dflt_fdb_add net/core/rtnetlink.c:3463 [inline]
        rtnl_fdb_add+0x1081/0x1270 net/core/rtnetlink.c:3558
        rtnetlink_rcv_msg+0xa0b/0x1530 net/core/rtnetlink.c:4715
        netlink_rcv_skb+0x36e/0x5f0 net/netlink/af_netlink.c:2454
        rtnetlink_rcv+0x50/0x60 net/core/rtnetlink.c:4733
        netlink_unicast_kernel net/netlink/af_netlink.c:1317 [inline]
        netlink_unicast+0x1638/0x1720 net/netlink/af_netlink.c:1343
        netlink_sendmsg+0x1205/0x1290 net/netlink/af_netlink.c:1908
        sock_sendmsg_nosec net/socket.c:621 [inline]
        sock_sendmsg net/socket.c:631 [inline]
        ___sys_sendmsg+0xe70/0x1290 net/socket.c:2114
        __sys_sendmsg net/socket.c:2152 [inline]
        __do_sys_sendmsg net/socket.c:2161 [inline]
        __se_sys_sendmsg+0x2a3/0x3d0 net/socket.c:2159
        __x64_sys_sendmsg+0x4a/0x70 net/socket.c:2159
        do_syscall_64+0xb8/0x100 arch/x86/entry/common.c:291
        entry_SYSCALL_64_after_hwframe+0x63/0xe7
      RIP: 0033:0x440ee9
      Code: e8 cc ab 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7
      48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
      ff 0f 83 bb 0a fc ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007fff6a93b518 EFLAGS: 00000213 ORIG_RAX: 000000000000002e
      RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000440ee9
      RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000003
      RBP: 0000000000000000 R08: 00000000004002c8 R09: 00000000004002c8
      R10: 00000000004002c8 R11: 0000000000000213 R12: 000000000000b4b0
      R13: 0000000000401ec0 R14: 0000000000000000 R15: 0000000000000000
      
      Uninit was created at:
        kmsan_save_stack_with_flags mm/kmsan/kmsan.c:256 [inline]
        kmsan_internal_poison_shadow+0xb8/0x1b0 mm/kmsan/kmsan.c:181
        kmsan_kmalloc+0x98/0x100 mm/kmsan/kmsan_hooks.c:91
        kmsan_slab_alloc+0x10/0x20 mm/kmsan/kmsan_hooks.c:100
        slab_post_alloc_hook mm/slab.h:446 [inline]
        slab_alloc_node mm/slub.c:2718 [inline]
        __kmalloc_node_track_caller+0x9e7/0x1160 mm/slub.c:4351
        __kmalloc_reserve net/core/skbuff.c:138 [inline]
        __alloc_skb+0x2f5/0x9e0 net/core/skbuff.c:206
        alloc_skb include/linux/skbuff.h:996 [inline]
        netlink_alloc_large_skb net/netlink/af_netlink.c:1189 [inline]
        netlink_sendmsg+0xb49/0x1290 net/netlink/af_netlink.c:1883
        sock_sendmsg_nosec net/socket.c:621 [inline]
        sock_sendmsg net/socket.c:631 [inline]
        ___sys_sendmsg+0xe70/0x1290 net/socket.c:2114
        __sys_sendmsg net/socket.c:2152 [inline]
        __do_sys_sendmsg net/socket.c:2161 [inline]
        __se_sys_sendmsg+0x2a3/0x3d0 net/socket.c:2159
        __x64_sys_sendmsg+0x4a/0x70 net/socket.c:2159
        do_syscall_64+0xb8/0x100 arch/x86/entry/common.c:291
        entry_SYSCALL_64_after_hwframe+0x63/0xe7
      
      v2:
      * Make error message more specific (David)
      
      Fixes: 090096bf ("net: generic fdb support for drivers without ndo_fdb_<op>")
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Reported-and-tested-by: syzbot+3a288d5f5530b901310e@syzkaller.appspotmail.com
      Reported-and-tested-by: syzbot+d53ab4e92a1db04110ff@syzkaller.appspotmail.com
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: David Ahern <dsahern@gmail.com>
      Reviewed-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da715775
    • X
      sctp: check policy more carefully when getting pr status · 71335836
      Xin Long 提交于
      When getting pr_assocstatus and pr_streamstatus by sctp_getsockopt,
      it doesn't correctly process the case when policy is set with
      SCTP_PR_SCTP_ALL | SCTP_PR_SCTP_MASK. It even causes a
      slab-out-of-bounds in sctp_getsockopt_pr_streamstatus().
      
      This patch fixes it by return -EINVAL for this case.
      
      Fixes: 0ac1077e ("sctp: get pr_assoc and pr_stream all status with SCTP_PR_SCTP_ALL")
      Reported-by: syzbot+5da0d0a72a9e7d791748@syzkaller.appspotmail.com
      Suggested-by: NMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71335836
    • X
      sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer · df132eff
      Xin Long 提交于
      If a transport is removed by asconf but there still are some chunks with
      this transport queuing on out_chunk_list, later an use-after-free issue
      will be caused when accessing this transport from these chunks in
      sctp_outq_flush().
      
      This is an old bug, we fix it by clearing the transport of these chunks
      in out_chunk_list when removing a transport in sctp_assoc_rm_peer().
      
      Reported-by: syzbot+56a40ceee5fb35932f4d@syzkaller.appspotmail.com
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      df132eff
    • D
      Merge branch 'mlxsw-Couple-of-fixes' · 2b0ab727
      David S. Miller 提交于
      Ido Schimmel says:
      
      ====================
      mlxsw: Couple of fixes
      
      First patch makes sure mlxsw does not ignore user requests to delete FDB
      entries that were learned by the device.
      
      Second patch fixes a use-after-free that can be triggered by requesting
      a reload via devlink when the previous reload failed.
      
      Please consider both patches for stable. They apply cleanly to both
      4.18.y and 4.19.y.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2b0ab727
    • S
      mlxsw: core: Fix devlink unregister flow · a22712a9
      Shalom Toledo 提交于
      After a failed reload, the driver is still registered to devlink, its
      devlink instance is still allocated and the 'reload_fail' flag is set.
      Then, in the next reload try, the driver's allocated devlink instance will
      be freed without unregistering from devlink and its components (e.g,
      resources). This scenario can cause a use-after-free if the user tries to
      execute command via devlink user-space tool.
      
      Fix by not freeing the devlink instance during reload (failed or not).
      
      Fixes: 24cc68ad ("mlxsw: core: Add support for reload")
      Signed-off-by: NShalom Toledo <shalomt@mellanox.com>
      Reviewed-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a22712a9
    • P
      mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs · ad0b9d94
      Petr Machata 提交于
      Demands to remove FDB entries should be honored even if the FDB entry in
      question was originally learned, and not added by the user. Therefore
      ignore the added_by_user datum for SWITCHDEV_FDB_DEL_TO_DEVICE.
      
      Fixes: 816a3bed ("switchdev: Add fdb.added_by_user to switchdev notifications")
      Signed-off-by: NPetr Machata <petrm@mellanox.com>
      Suggested-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad0b9d94
    • N
      hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4 · 6e29464b
      Nathan Chancellor 提交于
      Clang warns:
      
      drivers/net/ethernet/huawei/hinic/hinic_tx.c:392:34: error: implicit
      conversion from enumeration type 'enum hinic_l4_tunnel_type' to
      different enumeration type 'enum hinic_l4_offload_type'
      [-Werror,-Wenum-conversion]
                      hinic_task_set_tunnel_l4(task, TUNNEL_UDP_NO_CSUM,
                      ~~~~~~~~~~~~~~~~~~~~~~~~       ^~~~~~~~~~~~~~~~~~
      1 error generated.
      
      It seems that hinic_task_set_tunnel_l4 was meant to take an enum of type
      hinic_l4_tunnel_type, not hinic_l4_offload_type, given both the name of
      the functions and the values used.
      
      Fixes: cc18a754 ("net-next/hinic: add checksum offload and TSO support")
      Signed-off-by: NNathan Chancellor <natechancellor@gmail.com>
      Reviewed-by: NNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6e29464b
    • L
      Documentation: ip-sysctl.txt: Document tcp_fwmark_accept · e2d00e62
      Lorenzo Colitti 提交于
      This patch documents the tcp_fwmark_accept sysctl that was
      added in 3.15.
      Signed-off-by: NLorenzo Colitti <lorenzo@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e2d00e62
    • T
      bonding: fix length of actor system · 414dd6fb
      Tobias Jungel 提交于
      The attribute IFLA_BOND_AD_ACTOR_SYSTEM is sent to user space having the
      length of sizeof(bond->params.ad_actor_system) which is 8 byte. This
      patch aligns the length to ETH_ALEN to have the same MAC address exposed
      as using sysfs.
      
      Fixes: f87fda00 ("bonding: prevent out of bound accesses")
      Signed-off-by: NTobias Jungel <tobias.jungel@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      414dd6fb
    • H
      ipv4/igmp: fix v1/v2 switchback timeout based on rfc3376, 8.12 · 966c37f2
      Hangbin Liu 提交于
      Similiar with ipv6 mcast commit 89225d1c ("net: ipv6: mld: fix v1/v2
      switchback timeout to rfc3810, 9.12.")
      
      i) RFC3376 8.12. Older Version Querier Present Timeout says:
      
         The Older Version Querier Interval is the time-out for transitioning
         a host back to IGMPv3 mode once an older version query is heard.
         When an older version query is received, hosts set their Older
         Version Querier Present Timer to Older Version Querier Interval.
      
         This value MUST be ((the Robustness Variable) times (the Query
         Interval in the last Query received)) plus (one Query Response
         Interval).
      
      Currently we only use a hardcode value IGMP_V1/v2_ROUTER_PRESENT_TIMEOUT.
      Fix it by adding two new items mr_qi(Query Interval) and mr_qri(Query Response
      Interval) in struct in_device.
      
      Now we can calculate the switchback time via (mr_qrv * mr_qi) + mr_qri.
      We need update these values when receive IGMPv3 queries.
      Reported-by: NYing Xu <yinxu@redhat.com>
      Signed-off-by: NHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      966c37f2
    • L
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 4b427452
      Linus Torvalds 提交于
      Pull ARM SoC platform updates from Arnd Bergmann:
       "A couple of platforms change hands in the MAINTAINERS file:
      
         - Linus Walleij lists himself for the ARM Reference platforms:
           versatile, vexpress, integrator and realview. He has been the main
           contributor for these for a while, and makes it official now.
      
         - Vladimir Zapolskiy takes over the LPC18xx platform from Joachim
           Eastwood
      
         - Manivannan Sadhasivam becomes a secondary maintainer for the
           Actions Semi machines
      
         - Nicolas Ferre lists updates the MAINTAINER listing for the AT91
           platform: Ludovic Desroches is now a co-maintainer for the
           platform, and several other people (Claudiu Beznea, Cristian
           Birsan, Eugen Hristev, Codrin Ciubotariu) take over individual
           device drivers.
      
        Thanks everyone for working on this, and welcome to the new
        maintainers!
      
        The "virt" platform on qemy or kvm can now be used in big-endian mode
        without additional tricks, thanks to Jason Donenfeld.
      
        Once again, we gain support for another NXP i.MX6 variant, this time
        it's the i.MX 6ULZ 32-bit single-core version.
      
        On arm64, we add support for two SoCs from Renesas: RZ/G2E (r8a774c0)
        and RZ/G2M (r8a774a1). These are described as microcontrollers on the
        manufacturer website, but appear to be rather powerful. The RZ/G2M is
        used on the reference board for the CIP Super Long Term Support (SLTS)
        Linux Kernels"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
        MAINTAINERS: Assign myself as a maintainer of ARM/LPC18XX architecture
        arm64: exynos: Enable generic power domain support
        MAINTAINERS: remove non-exsiting email address of Baoyou
        MAINTAINERS: fix pattern in ARM/Synaptics berlin SoC section
        MAINTAINERS: Drop dt-bindings/genpd/k2g.h
        ARM: samsung: Limit SAMSUNG_PM_CHECK config option to non-Exynos platforms
        arm64: actions: Enable PINCTRL in platforms Kconfig
        MAINTAINERS: Add entry for Actions Semi Owl SoCs DMA driver
        MAINTAINERS: Add entry for Actions Semiconductor Owl I2C driver
        MAINTAINERS: Update clock binding entry for Actions Semi Owl SoCs
        ARM: imx: add i.mx6ulz msl support
        ARM: Assume maintainership of ARM reference designs
        ARM: support big-endian for the virt architecture
        MAINTAINERS: sdhci: move the Microchip entry to proper location
        MAINTAINERS: move former ATMEL entries to proper MICROCHIP location
        MAINTAINERS: remove the / ATMEL string from MICROCHIP entries
        MAINTAINERS: iio: add co-maintainer to SAMA5D2-compatible ADC driver
        MAINTAINERS: pwm: add entry for Microchip pwm driver
        MAINTAINERS: dmaengine: add files to Microchip dma entry
        MAINTAINERS: USB: change maintainer for Microchip USBA gadget driver
        ...
      4b427452
    • L
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b22b6bea
      Linus Torvalds 提交于
      Pull ARM SoC driver updates from Arnd Bergmann:
       "The most noteworthy SoC driver changes this time include:
      
         - The TEE subsystem gains an in-kernel interface to access the TEE
           from device drivers.
      
         - The reset controller subsystem gains a driver for the Qualcomm
           Snapdragon 845 Power Domain Controller.
      
         - The Xilinx Zynq platform now has a firmware interface for its
           platform management unit. This contains a firmware "ioctl"
           interface that was a little controversial at first, but the version
           we merged solved that by not exposing arbitrary firmware calls to
           user space.
      
         - The Amlogic Meson platform gains a "canvas" driver that is used for
           video processing and shared between different high-level drivers.
      
        The rest is more of the usual, mostly related to SoC specific power
        management support and core drivers in drivers/soc:
      
         - Several Renesas SoCs (RZ/G1N, RZ/G2M, R-Car V3M, RZ/A2M) gain new
           features related to power and reset control.
      
         - The Mediatek mt8183 and mt6765 SoC platforms gain support for their
           respective power management chips.
      
         - A new driver for NXP i.MX8, which need a firmware interface for
           power management.
      
         - The SCPI firmware interface now contains support estimating power
           usage of performance states
      
         - The NVIDIA Tegra "pmc" driver gains a few new features, in
           particular a pinctrl interface for configuring the pads.
      
         - Lots of small changes for Qualcomm, in particular the "smem" device
           driver.
      
         - Some cleanups for the TI OMAP series related to their sysc
           controller.
      
        Additional cleanups and bugfixes in SoC specific drivers include the
        Meson, Keystone, NXP, AT91, Sunxi, Actions, and Tegra platforms"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (129 commits)
        firmware: tegra: bpmp: Implement suspend/resume support
        drivers: clk: Add ZynqMP clock driver
        dt-bindings: clock: Add bindings for ZynqMP clock driver
        firmware: xilinx: Add zynqmp IOCTL API for device control
        Documentation: xilinx: Add documentation for eemi APIs
        MAINTAINERS: imx: include drivers/firmware/imx path
        firmware: imx: add misc svc support
        firmware: imx: add SCU firmware driver support
        reset: Fix potential use-after-free in __of_reset_control_get()
        dt-bindings: arm: fsl: add scu binding doc
        soc: fsl: qbman: add interrupt coalesce changing APIs
        soc: fsl: bman_portals: defer probe after bman's probe
        soc: fsl: qbman: Use last response to determine valid bit
        soc: fsl: qbman: Add 64 bit DMA addressing requirement to QBMan
        soc: fsl: qbman: replace CPU 0 with any online CPU in hotplug handlers
        soc: fsl: qbman: Check if CPU is offline when initializing portals
        reset: qcom: PDC Global (Power Domain Controller) reset controller
        dt-bindings: reset: Add PDC Global binding for SDM845 SoCs
        reset: Grammar s/more then once/more than once/
        bus: ti-sysc: Just use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS
        ...
      b22b6bea
    • L
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 53b7a3b7
      Linus Torvalds 提交于
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "The defconfig changes are split out from the rest again. This time we
        have a number of changes for NXP i.MX and Renesas, including a cleanup
        of old options.
      
        Some smaller changes are for Socionext Uniphier, Allwinner, Qualcomm,
        Rockchip, Renesas, AT91, Hisilicon, and STM32. All of these just
        enable platform specific device drivers"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (40 commits)
        arm64: defconfig: Enable SERIAL_8250_OMAP
        arm64: defconfig: Enable TI_SCI related configs
        ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL
        ARM: imx_v4_v5_defconfig: Remove unneeded options
        ARM: imx_v4_v5_defconfig: Re-sync defconfig
        ARM: mxs_defconfig: Remove unneeded options
        ARM: mxs_defconfig: Re-sync defconfig
        ARM: imx_v6_v7_defconfig: Remove unneeded options
        ARM: imx_v6_v7_defconfig: Re-sync defconfig
        ARM: imx_v6_v7_defconfig: select CONFIG_ARM_CPUIDLE by default
        ARM: imx_v6_v7_defconfig: Make usbnet drivers builtin for boot
        ARM: imx_v6_v7_defconfig: add CONFIG_FW_LOADER_USER_HELPER
        ARM: imx_v6_v7_defconfig: Select CONFIG_SENSORS_MC13783_ADC
        ARM: multi_v7_defconfig: enable CONFIG_MMC_UNIPHIER
        arm64: defconfig: enable CONFIG_MMC_UNIPHIER
        ARM: multi_v7_defconfig: Enable USB phys for UniPhier SoCs
        arm64: defconfig: Enable USB phys for UniPhier SoCs
        arm64: defconfig: enable Rockchip Innosilicon hdmiphy
        arm64: defconfig: Enable PCIEPORTBUS
        arm64: defconfig: enable HiSilicon HNS3 driver
        ...
      53b7a3b7
    • L
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 93335e59
      Linus Torvalds 提交于
      Pull ARM SoC device tree updates from Arnd Bergmann:
       "There are close to 800 indivudal changesets in this branch again,
        which feels like a lot. There are particularly many changes for the
        NVIDIA Tegra platform this time, in fact more than it has seen in the
        two years since the v4.9 merge window. Aside from this, it's been
        fairly normal, with lots of changes going into Renesas R-CAR, NXP
        i.MX, Allwinner Sunxi, Samsung Exynos, and TI OMAP.
      
        Most of the changes are for adding new features into existing boards,
        for brevity I'm only mentioning completely new machines and SoCs here.
        For the first time I think we have (slightly) more new 64-bit hardware
        than 32-bit:
      
        Two boards get added for TI OMAP: Moxa UC-2101 is an industrial
        computer, see https://www.moxa.com/product/UC-2100.htm; GTA04A5 is a
        minor variation of the motherboards of the GTA04 phone, see
        https://shop.goldelico.com/wiki.php?page=GTA04A5
      
        Clearfog is a nice little board for quad-core Marvell Armada 8040
        network processor, see
        https://www.solid-run.com/marvell-armada-family/clearfog-gt-8k/
      
        Two additional server boards come with the Aspeed baseboard management
        controllers: Stardragon4800 is an arm64 reference platform made by HXT
        (based on Qualcomm's server chips), and TiogaPass is an Open Compute
        mainboard with x86 CPUs. Both use the ARM11 based AST2500 chips in the
        BMC.
      
        NXP i.MX usually sees a lot of new boards each release. This time
        there we only add one minor variant: ConnectCore 6UL SBC Pro uses the
        same SoM design as the ConnectCore 6UL SBC Express added later.
        However, there is a new chip, the i.MX6ULZ, which is an even smaller
        variant of the i.MX6ULL, with features removed. There is also support
        for the reference board design, the i.MX6ULZ 14x14 EVK.
      
        A new Raspberry Pi variant gets added, this one is the CM3 compute
        module based on bcm2837, it was launched in early 2017 but only now
        added to the kernel, both as 32-bit and as 64-bit files, as we tend to
        do for Raspberry Pi.
      
        On the Allwinner side, everything is again about cheap development
        boards, usually of the "Fruit Pi" variety. The new ones this time are:
         - Orange Pi Zero Plus2: http://www.orangepi.org/OrangePiZeroPlus2/
         - Orange Pi One Plus: http://www.orangepi.org/OrangePiOneplus/
         - Pine64 LTS: https://www.pine64.org/?product=pine-a64-lts
         - Banana Pi M2+ H5: http://www.banana-pi.org/m2plus.html
        The last one of these is now a 64-bit version of the earlier Banana Pi
        M2+ H3, with the same board layout.
      
        Similarly, for Rockchips, get get another variant of the 32-bit Asus
        Tinker board, the model 'S' based on rk3288, and three now boards
        based on the popular RK3399 chip:
         - ROC-RK3399-PC: https://libre.computer/products/boards/roc-rk3399-pc/
         - Rock960: https://www.96boards.org/product/rock960/
         - RockPro64: https://www.pine64.org/?page_id=61454
        These are all quite powerful boards with lots of RAM and I/O, and the
        RK3399 is the same chip used in several Chromebooks. Finally, we get
        support for the PX30 (aka rk3326) chip, which is based on the low-end
        64-bit Cortex-A35 CPU core. So far, only the evaluation board is
        supported.
      
        One more Banana Pi is added with a Mediatek chip: Banana Pi R64 is
        based on the MT7622 WiFi router platform, and the first product I've
        seen with a 64-bit Mediatek chip in that market:
        http://www.banana-pi.org/r64.html
      
        For HiSilicon, we gain support for the Hi3670 SoC and HiKey 370
        development board, which are similar to the Hi3660 and Hikey 360
        respectively, but add support for an NPU.
      
        Amlogic gets initial support for the Meson-G12A chip (S905D2), another
        quad-core Cortex-A53 SoC, and its evaluation platform. On the 32-bit
        side, we gain support for an actual end-user product, the Endless
        Computers Endless Mini based on Meson8b (S805), see
        https://endlessos.com/computers/
      
        Qualcomm adds support for their MSM8998 SoC and evaluation platform.
        This chip is commonly known as the Snapdragon 835, and is used in
        high-end phones as well as low-end laptops.
      
        For Renesas, a very bare support for the r8a774a1 (RZ/G2M) is added,
        but no boards for this one. However, we do add boards for the
        previously added r8a77965 (R-Car M3-N): the M3NULCB Kingfisher and the
        M3NULCB Starter Kit Pro.
      
        While we have lots of DT changes for NVIDIA to update the existing
        files, the only board that gets added is the Toradex Colibri T20 on
        Colibri Evaluation Board for the old Tegra2.
      
        Synaptics add support for their AS370 SoC, which is part of the
        (formerly Marvell) Berlin line of set-top-box chips used e.g. in the
        various Google Chromecast. Only the .dtsi gets added at this point, no
        actual machines"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (721 commits)
        ARM: dts: socfgpa: remove ethernet aliases from dtsi
        arm64: dts: stratix10: add ethernet aliases
        dt-bindings: mediatek: Add bindig for MT7623 IOMMU and SMI
        dt-bindings: mediatek: Add JPEG Decoder binding for MT7623
        dt-bindings: iommu: mediatek: Add binding for MT7623
        dt-bindings: clock: mediatek: add support for MT7623
        ARM: dts: mvebu: armada-385-db-88f6820-amc: auto-detect nand ECC properites
        ARM: dts: da850-lego-ev3: slow down A/DC as much as possible
        ARM: dts: da850-evm: Enable tca6416 on baseboard
        arm64: dts: uniphier: Add USB2 PHY nodes
        arm64: dts: uniphier: Add USB3 controller nodes
        ARM: dts: uniphier: Add USB2 PHY nodes
        ARM: dts: uniphier: Add USB3 controller nodes
        arm64: dts: meson-axg: s400: disable emmc
        arm64: dts: meson-axg: s400: add missing emmc pwrseq
        arm64: dts: clearfog-gt-8k: add PCIe slot description
        ARM: dts: at91: sama5d4_xplained: even nand memory partitions
        ARM: dts: at91: sama5d3_xplained: even nand memory partitions
        ARM: dts: at91: at91sam9x5cm: even nand memory partitions
        ARM: dts: at91: sama5d2_ptc_ek: fix bootloader env offsets
        ...
      93335e59
    • L
      Merge branch 'parisc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · c38239b4
      Linus Torvalds 提交于
      Pull parisc updates from Helge Deller:
       "Three small patches:
      
         - A boot fix for A500 machines, crash was caused by the new
           alternative patching code from this merge window (Dave)
      
         - Change __kernel_suseconds_t to match glibc on 64-bit parisc (Arnd)
      
         - Use constants instead of hard-coded numbers (me)"
      
      * 'parisc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Fix A500 boot crash
        parisc: Use LINUX_GATEWAY_SPACE constant in entry.S
        parisc64: change __kernel_suseconds_t to match glibc
      c38239b4
    • L
      Merge branch 'i2c/for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 57dbde63
      Linus Torvalds 提交于
      Pull i2c updates from Wolfram Sang:
       "I2C has not so much stuff this time. Mostly driver enablement for new
        SoCs, some driver bugfixes, and some cleanups"
      
      * 'i2c/for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (35 commits)
        MAINTAINERS: add maintainer for Renesas RIIC driver
        i2c: sh_mobile: Remove dummy runtime PM callbacks
        i2c: uniphier-f: fix race condition when IRQ is cleared
        i2c: uniphier-f: fix occasional timeout error
        i2c: uniphier-f: make driver robust against concurrency
        i2c: i2c-qcom-geni: Simplify irq handler
        i2c: i2c-qcom-geni: Simplify tx/rx functions
        i2c: designware: Set IRQF_NO_SUSPEND flag for all BYT and CHT controllers
        i2c: mux: mlxcpld: simplify code to reach the adapter
        i2c: mux: ltc4306: simplify code to reach the adapter
        i2c: mux: pca954x: simplify code to reach the adapter
        i2c: core: remove level of indentation in i2c_transfer
        i2c: core: remove outdated DEBUG output
        i2c: zx2967: use core to detect 'no zero length' quirk
        i2c: tegra: use core to detect 'no zero length' quirk
        i2c: qup: use core to detect 'no zero length' quirk
        i2c: omap: use core to detect 'no zero length' quirk
        i2c: Convert to using %pOFn instead of device_node.name
        i2c: brcmstb: Allow enabling the driver on DSL SoCs
        eeprom: at24: fix unexpected timeout under high load
        ...
      57dbde63
    • L
      Merge tag 'media/v4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 134bf98c
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
      
       - new dvb frontend driver: lnbh29
      
       - new sensor drivers: imx319 and imx 355
      
       - some old soc_camera driver renames to avoid conflict with new
         drivers
      
       - new i.MX Pixel Pipeline (PXP) mem-to-mem platform driver
      
       - a new V4L2 frontend for the FWHT codec
      
       - several other improvements, bug fixes, code cleanups, etc
      
      * tag 'media/v4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (289 commits)
        media: rename soc_camera I2C drivers
        media: cec: forgot to cancel delayed work
        media: vivid: Support 480p for webcam capture
        media: v4l2-tpg: fix kernel oops when enabling HFLIP and OSD
        media: vivid: Add 16-bit bayer to format list
        media: v4l2-tpg-core: Add 16-bit bayer
        media: pvrusb2: replace `printk` with `pr_*`
        media: venus: vdec: fix decoded data size
        media: cx231xx: fix potential sign-extension overflow on large shift
        media: dt-bindings: media: rcar_vin: add device tree support for r8a7744
        media: isif: fix a NULL pointer dereference bug
        media: exynos4-is: make const array config_ids static
        media: cx23885: make const array addr_list static
        media: ivtv: make const array addr_list static
        media: bttv-input: make const array addr_list static
        media: cx18: Don't check for address of video_dev
        media: dw9807-vcm: Fix probe error handling
        media: dw9714: Remove useless error message
        media: dw9714: Fix error handling in probe function
        media: cec: name for RC passthrough device does not need 'RC for'
        ...
      134bf98c
    • C
      MAINTAINERS: add maintainer for Renesas RIIC driver · 84de6e96
      Chris Brandt 提交于
      The RIIC I2C controller is used in Renesas RZ/A SoCs.
      Signed-off-by: NChris Brandt <chris.brandt@renesas.com>
      [wsa: added documentation file]
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      84de6e96
    • J
      i2c: sh_mobile: Remove dummy runtime PM callbacks · 7ce6c65b
      Jarkko Nikula 提交于
      Platform drivers don't need dummy runtime PM callbacks that just return
      success and non-NULL pm pointer in their struct device_driver in order
      to have runtime PM happening. This has changed since following commits:
      
      05aa55dd ("PM / Runtime: Lenient generic runtime pm callbacks")
      543f2503 ("PM / platform_bus: Allow runtime PM by default")
      8b313a38 ("PM / Platform: Use generic runtime PM callbacks directly")
      Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Reviewed-by: NWolfram Sang <wsa+renesas@sang-engineering.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      7ce6c65b
    • M
      i2c: uniphier-f: fix race condition when IRQ is cleared · eaba6878
      Masahiro Yamada 提交于
      The current IRQ handler clears all the IRQ status bits when it bails
      out. This is dangerous because it might clear away the status bits
      that have just been set while processing the current handler. If this
      happens, the IRQ event for the latest transfer is lost forever.
      
      The IRQ status bits must be cleared *before* the next transfer is
      kicked.
      
      Fixes: 6a62974b ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      eaba6878
    • M
      i2c: uniphier-f: fix occasional timeout error · 39226aaa
      Masahiro Yamada 提交于
      Currently, a timeout error could happen at a repeated START condition.
      
      For a (non-repeated) START condition, the controller starts sending
      data when the UNIPHIER_FI2C_CR_STA bit is set. However, for a repeated
      START condition, the hardware starts running when the slave address is
      written to the TX FIFO - the write to the UNIPHIER_FI2C_CR register is
      actually unneeded.
      
      Because the hardware is already running before the IRQ is enabled for
      a repeated START, the driver may miss the IRQ event. In most cases,
      this problem does not show up since modern CPUs are much faster than
      the I2C transfer. However, it is still possible that a context switch
      happens after the controller starts, but before the IRQ register is
      set up.
      
      To fix this,
      
       - Do not write UNIPHIER_FI2C_CR for repeated START conditions.
      
       - Enable IRQ *before* writing the slave address to the TX FIFO.
      
       - Disable IRQ for the current CPU while queuing up the TX FIFO;
         If the CPU is interrupted by some task, the interrupt handler
         might be invoked due to the empty TX FIFO before completing the
         setup.
      
      Fixes: 6a62974b ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      39226aaa
    • M
      i2c: uniphier-f: make driver robust against concurrency · f1fdcbbd
      Masahiro Yamada 提交于
      This is unlikely to happen, but it is possible for a CPU to enter
      the interrupt handler just after wait_for_completion_timeout() has
      expired. If this happens, the hardware is accessed from multiple
      contexts concurrently.
      
      Disable the IRQ after wait_for_completion_timeout(), and do nothing
      from the handler when the IRQ is disabled.
      
      Fixes: 6a62974b ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      f1fdcbbd
    • W
    • L
      HID: input: simplify/fix high-res scroll event handling · 044ee890
      Linus Torvalds 提交于
      Commit 1ff2e1a4 ("HID: input: Create a utility class for counting
      scroll events") created the helper function
      
          hid_scroll_counter_handle_scroll()
      
      to handle high-res scroll events and also expose them as regular wheel
      events.
      
      But the resulting algorithm was unstable, and causes scrolling to be
      very unreliable.  When you hit the half-way mark of the highres
      multiplier, small highres movements will incorrectly translate into big
      traditional wheel movements, causing odd jitters.
      
      Simplify the code and make the output stable.
      
      NOTE! I'm pretty sure this will need further tweaking.  But this at
      least turns a unusable mouse wheel on my Logitech MX Anywhere 2S into
      a usable one.
      
      Cc: Jiri Kosina <jikos@kernel.org>
      Cc: Harry Cutts <hcutts@chromium.org>
      Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
      Cc: Peter Hutterer <peter.hutterer@who-t.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      044ee890
    • L
      Merge tag 'tty-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 5bd4af34
      Linus Torvalds 提交于
      Pull tty/serial updates from Greg KH:
       "Here is the big tty and serial pull request for 4.20-rc1
      
        Lots of little things here, including a merge from the SPI tree in
        order to keep things simpler for everyone to sync around for one
        platform.
      
        Major stuff is:
      
         - tty buffer clearing after use
      
         - atmel_serial fixes and additions
      
         - xilinx uart driver updates
      
        and of course, lots of tiny fixes and additions to individual serial
        drivers.
      
        All of these have been in linux-next with no reported issues for a
        while"
      
      * tag 'tty-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (66 commits)
        of: base: Change logic in of_alias_get_alias_list()
        of: base: Fix english spelling in of_alias_get_alias_list()
        serial: sh-sci: do not warn if DMA transfers are not supported
        serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES
        tty: check name length in tty_find_polling_driver()
        serial: sh-sci: Add r8a77990 support
        tty: wipe buffer if not echoing data
        tty: wipe buffer.
        serial: fsl_lpuart: Remove the alias node dependence
        TTY: sn_console: Replace spin_is_locked() with spin_trylock()
        Revert "serial:serial_core: Allow use of CTS for PPS line discipline"
        serial: 8250_uniphier: add auto-flow-control support
        serial: 8250_uniphier: flatten probe function
        serial: 8250_uniphier: remove unused "fifo-size" property
        dt-bindings: serial: sh-sci: Document r8a7744 bindings
        serial: uartps: Fix missing unlock on error in cdns_get_id()
        tty/serial: atmel: add ISO7816 support
        tty/serial_core: add ISO7816 infrastructure
        serial:serial_core: Allow use of CTS for PPS line discipline
        serial: docs: Fix filename for serial reference implementation
        ...
      5bd4af34
    • L
      Merge tag 'staging-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 738b04fb
      Linus Torvalds 提交于
      Pull staging/IIO driver updates from Greg KH:
       "Here is the big staging and IIO driver pull request for 4.20-rc1.
      
        There are lots of things here, we ended up adding more lines than
        removing, thanks to a large influx of Comedi National Instrument
        device support. Someday soon we need to get comedi out of staging...
      
        Other than the comedi drivers, the "big" things here are:
      
         - new iio drivers
      
         - delete dgnc driver (no one used it and no one had the hardware
           anymore)
      
         - vbox driver updates and fixes
      
         - erofs fixes
      
         - tons and tons of tiny checkpatch fixes for almost all staging
           drivers
      
        All of these have been in linux-next, with the last few happening a
        bit "late" due to them getting stuck on my laptop during travel to the
        Mantainers summit"
      
      * tag 'staging-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (690 commits)
        staging: gasket: Fix sparse "incorrect type in assignment" warnings.
        staging: gasket: remove debug logs for callback invocation
        staging: gasket: remove debug logs in page table mapping calls
        staging: rtl8188eu: core: Use sizeof(*p) instead of sizeof(struct P) for memory allocation
        staging: ks7010: Remove extra blank line
        staging: gasket: Remove extra blank line
        staging: media: davinci_vpfe: Fix spelling mistake in enum
        staging: speakup: Add a pair of braces
        staging: wlan-ng: Replace long int with long
        staging: MAINTAINERS: remove obsolete IPX staging directory
        staging: MAINTAINERS: remove NCP filesystem entry
        staging: rtl8188eu: cleanup comparsions to false
        staging: gasket: Update device virtual address comment
        staging: gasket: sysfs: fix attribute release comment
        staging: gasket: apex: fix sysfs_show
        staging: gasket: page_table: simplify gasket_components_to_dev_address
        staging: gasket: page_table: fix comment in components_to_dev_address
        staging: gasket: page table: fixup error path allocating coherent mem
        staging: gasket: page_table: rearrange gasket_page_table_entry
        staging: gasket: page_table: remove unnecessary PTE status set to free
        ...
      738b04fb
    • L
      Merge tag 'mailbox-v4.20' of git://git.linaro.org/landing-teams/working/fujitsu/integration · fe675d4d
      Linus Torvalds 提交于
      Pull mailbox updates from Jassi Brar:
      
       - convert print users to use the %pOFn format specifier
      
       - enable ti-msgmr driver for the K3 platform as well
      
       - add QCS404 to compatible list of QCOM's APCS IPC driver
      
       - minor spelling fixes toogle -> toggle
      
       - kzalloc failure catch in Mediatek driver
      
      * tag 'mailbox-v4.20' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: mediatek: Add check for possible failure of kzalloc
        mailbox: bcm-flexrm-mailbox: fix spelling mistake "toogle" -> "toggle"
        mailbox: qcom: Add QCS404 APPS Global compatible
        drivers: mailbox: Make ti-msgmr driver depend on ARCH_K3
        mailbox: Convert to using %pOFn instead of device_node.name
      fe675d4d