1. 28 Feb, 2021 7 commits
    • Jakub Kicinski's avatar
      Merge branch 'net-hns3-fixes-fot-net' · 447621e3
      Jakub Kicinski authored
      Huazhong Tan says:
      
      ====================
      net: hns3: fixes fot -net
      
      The patchset includes some fixes for the HNS3 ethernet driver.
      ====================
      
      Link: https://lore.kernel.org/r/1614410693-8107-1-git-send-email-tanhuazhong@huawei.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      447621e3
    • Jian Shen's avatar
      net: hns3: fix bug when calculating the TCAM table info · b36fc875
      Jian Shen authored
      The function hclge_fd_convert_tuple() is used to convert tuples
      and tuples mask to TCAM x and y.  But it misuses the source mac
      as source mac mask when convert INNER_SRC_MAC, which may cause
      the flow director rule works unexpectedly. So fix it.
      
      Fixes: 11732868 ("net: hns3: Add input key and action config support for flow director")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b36fc875
    • Jian Shen's avatar
      net: hns3: fix query vlan mask value error for flow director · c75ec148
      Jian Shen authored
      Currently, the driver returns VLAN_VID_MASK for vlan mask field,
      when get flow director rule information for rule doesn't use vlan.
      It may cause the vlan mask value display as 0xf000 in this
      case, like below:
      
      estuary:/$ ethtool -u eth1
      50 RX rings available
      Total 1 rules
      
      Filter: 2
      Rule Type: TCP over IPv4
      Src IP addr: 0.0.0.0 mask: 255.255.255.255
      Dest IP addr: 0.0.0.0 mask: 255.255.255.255
      TOS: 0x0 mask: 0xff
      Src port: 0 mask: 0xffff
      Dest port: 0 mask: 0xffff
      VLAN EtherType: 0x0 mask: 0xffff
      VLAN: 0x0 mask: 0xf000
      User-defined: 0x1234 mask: 0x0
      Action: Direct to queue 3
      
      Fix it by return 0.
      
      Fixes: 05c2314f ("net: hns3: Add support for rule query of flow director")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c75ec148
    • Jian Shen's avatar
      net: hns3: fix error mask definition of flow director · ae85ddda
      Jian Shen authored
      Currently, some bit filed definitions of flow director TCAM
      configuration command are incorrect. Since the wrong MSB is
      always 0, and these fields are assgined in order, so it still works.
      
      Fix it by redefine them.
      
      Fixes: 11732868 ("net: hns3: Add input key and action config support for flow director")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ae85ddda
    • Daniel Borkmann's avatar
      net: Fix gro aggregation for udp encaps with zero csum · 89e5c58f
      Daniel Borkmann authored
      We noticed a GRO issue for UDP-based encaps such as vxlan/geneve when the
      csum for the UDP header itself is 0. In that case, GRO aggregation does
      not take place on the phys dev, but instead is deferred to the vxlan/geneve
      driver (see trace below).
      
      The reason is essentially that GRO aggregation bails out in udp_gro_receive()
      for such case when drivers marked the skb with CHECKSUM_UNNECESSARY (ice, i40e,
      others) where for non-zero csums 2abb7cdc ("udp: Add support for doing
      checksum unnecessary conversion") promotes those skbs to CHECKSUM_COMPLETE
      and napi context has csum_valid set. This is however not the case for zero
      UDP csum (here: csum_cnt is still 0 and csum_valid continues to be false).
      
      At the same time 57c67ff4 ("udp: additional GRO support") added matches
      on !uh->check ^ !uh2->check as part to determine candidates for aggregation,
      so it certainly is expected to handle zero csums in udp_gro_receive(). The
      purpose of the check added via 662880f4 ("net: Allow GRO to use and set
      levels of checksum unnecessary") seems to catch bad csum and stop aggregation
      right away.
      
      One way to fix aggregation in the zero case is to only perform the !csum_valid
      check in udp_gro_receive() if uh->check is infact non-zero.
      
      Before:
      
        [...]
        swapper     0 [008]   731.946506: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100400 len=1500   (1)
        swapper     0 [008]   731.946507: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100200 len=1500
        swapper     0 [008]   731.946507: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101100 len=1500
        swapper     0 [008]   731.946508: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101700 len=1500
        swapper     0 [008]   731.946508: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101b00 len=1500
        swapper     0 [008]   731.946508: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100600 len=1500
        swapper     0 [008]   731.946508: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100f00 len=1500
        swapper     0 [008]   731.946509: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100a00 len=1500
        swapper     0 [008]   731.946516: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100500 len=1500
        swapper     0 [008]   731.946516: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100700 len=1500
        swapper     0 [008]   731.946516: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101d00 len=1500   (2)
        swapper     0 [008]   731.946517: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101000 len=1500
        swapper     0 [008]   731.946517: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101c00 len=1500
        swapper     0 [008]   731.946517: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101400 len=1500
        swapper     0 [008]   731.946518: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100e00 len=1500
        swapper     0 [008]   731.946518: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497101600 len=1500
        swapper     0 [008]   731.946521: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff966497100800 len=774
        swapper     0 [008]   731.946530: net:netif_receive_skb: dev=test_vxlan skbaddr=0xffff966497100400 len=14032 (1)
        swapper     0 [008]   731.946530: net:netif_receive_skb: dev=test_vxlan skbaddr=0xffff966497101d00 len=9112  (2)
        [...]
      
        # netperf -H 10.55.10.4 -t TCP_STREAM -l 20
        MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.55.10.4 () port 0 AF_INET : demo
        Recv   Send    Send
        Socket Socket  Message  Elapsed
        Size   Size    Size     Time     Throughput
        bytes  bytes   bytes    secs.    10^6bits/sec
      
         87380  16384  16384    20.01    13129.24
      
      After:
      
        [...]
        swapper     0 [026]   521.862641: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff93ab0d479000 len=11286 (1)
        swapper     0 [026]   521.862643: net:netif_receive_skb: dev=test_vxlan skbaddr=0xffff93ab0d479000 len=11236 (1)
        swapper     0 [026]   521.862650: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff93ab0d478500 len=2898  (2)
        swapper     0 [026]   521.862650: net:netif_receive_skb: dev=enp10s0f0  skbaddr=0xffff93ab0d479f00 len=8490  (3)
        swapper     0 [026]   521.862653: net:netif_receive_skb: dev=test_vxlan skbaddr=0xffff93ab0d478500 len=2848  (2)
        swapper     0 [026]   521.862653: net:netif_receive_skb: dev=test_vxlan skbaddr=0xffff93ab0d479f00 len=8440  (3)
        [...]
      
        # netperf -H 10.55.10.4 -t TCP_STREAM -l 20
        MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.55.10.4 () port 0 AF_INET : demo
        Recv   Send    Send
        Socket Socket  Message  Elapsed
        Size   Size    Size     Time     Throughput
        bytes  bytes   bytes    secs.    10^6bits/sec
      
         87380  16384  16384    20.01    24576.53
      
      Fixes: 57c67ff4 ("udp: additional GRO support")
      Fixes: 662880f4 ("net: Allow GRO to use and set levels of checksum unnecessary")
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
      Cc: Tom Herbert <tom@herbertland.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/r/20210226212248.8300-1-daniel@iogearbox.netSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      89e5c58f
    • Rafał Miłecki's avatar
      net: broadcom: bcm4908_enet: enable RX after processing packets · d313d16b
      Rafał Miłecki authored
      When receiving a lot of packets hardware may run out of free
      descriptiors and stop RX ring. Enable it every time after handling
      received packets.
      
      Fixes: 4feffead ("net: broadcom: bcm4908enet: add BCM4908 controller driver")
      Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Link: https://lore.kernel.org/r/20210226132038.29849-1-zajec5@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d313d16b
    • Yinjun Zhang's avatar
      ethtool: fix the check logic of at least one channel for RX/TX · a4fc088a
      Yinjun Zhang authored
      The command "ethtool -L <intf> combined 0" may clean the RX/TX channel
      count and skip the error path, since the attrs
      tb[ETHTOOL_A_CHANNELS_RX_COUNT] and tb[ETHTOOL_A_CHANNELS_TX_COUNT]
      are NULL in this case when recent ethtool is used.
      
      Tested using ethtool v5.10.
      
      Fixes: 7be92514 ("ethtool: check if there is at least one channel for TX/RX in the core")
      Signed-off-by: default avatarYinjun Zhang <yinjun.zhang@corigine.com>
      Signed-off-by: default avatarSimon Horman <simon.horman@netronome.com>
      Signed-off-by: default avatarLouis Peens <louis.peens@netronome.com>
      Link: https://lore.kernel.org/r/20210225125102.23989-1-simon.horman@netronome.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      a4fc088a
  2. 26 Feb, 2021 25 commits
  3. 25 Feb, 2021 8 commits
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.12-rc1' of... · 2c87f7a3
      Linus Torvalds authored
      Merge tag 'pwm/for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "The ZTE ZX platform is being removed, so the PWM driver is no longer
        needed and removed as well.
      
        Other than that this contains a small set of fixes and cleanups across
        a couple of drivers"
      
      * tag 'pwm/for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: lpc18xx-sct: remove unneeded semicolon
        pwm: iqs620a: Correct a stale state variable
        pwm: iqs620a: Fix overflow and optimize calculations
        pwm: rockchip: Enable clock before calling clk_get_rate()
        pwm: rockchip: Eliminate potential race condition when probing
        pwm: rockchip: Replace "bus clk" with "PWM clk"
        pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
        pwm: rockchip: Enable APB clock during register access while probing
        pwm: Remove ZTE ZX driver
      2c87f7a3
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · ffc17596
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - new vdpa features to allow creation and deletion of new devices
      
       - virtio-blk support per-device queue depth
      
       - fixes, cleanups all over the place
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (31 commits)
        virtio-input: add multi-touch support
        virtio_mmio: fix one typo
        vdpa/mlx5: fix param validation in mlx5_vdpa_get_config()
        virtio_net: Fix fall-through warnings for Clang
        virtio_input: Prevent EV_MSC/MSC_TIMESTAMP loop storm for MT.
        virtio-blk: support per-device queue depth
        virtio_vdpa: don't warn when fail to disable vq
        virtio-pci: introduce modern device module
        virito-pci-modern: rename map_capability() to vp_modern_map_capability()
        virtio-pci-modern: introduce helper to get notification offset
        virtio-pci-modern: introduce helper for getting queue nums
        virtio-pci-modern: introduce helper for setting/geting queue size
        virtio-pci-modern: introduce helper to set/get queue_enable
        virtio-pci-modern: introduce vp_modern_queue_address()
        virtio-pci-modern: introduce vp_modern_set_queue_vector()
        virtio-pci-modern: introduce vp_modern_generation()
        virtio-pci-modern: introduce helpers for setting and getting features
        virtio-pci-modern: introduce helpers for setting and getting status
        virtio-pci-modern: introduce helper to set config vector
        virtio-pci-modern: introduce vp_modern_remove()
        ...
      ffc17596
    • Linus Torvalds's avatar
      Merge tag 'mips_5.12_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · a6525b99
      Linus Torvalds authored
      Pull more MIPS updates from Thomas Bogendoerfer:
      
       - added n64 block driver
      
       - fix for ubsan warnings
      
       - fix for bcm63xx platform
      
       - update of linux-mips mailinglist
      
      * tag 'mips_5.12_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        arch: mips: update references to current linux-mips list
        mips: bmips: init clocks earlier
        vmlinux.lds.h: catch even more instrumentation symbols into .data
        n64: store dev instance into disk private data
        n64: cleanup n64cart_probe()
        n64: cosmetics changes
        n64: remove curly brackets
        n64: use sector SECTOR_SHIFT instead 512
        n64: use enums for reg
        n64: move module param at the top
        n64: move module info at the end
        n64: use pr_fmt to avoid duplicate string
        block: Add n64 cart driver
      a6525b99
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-02-26' of git://anongit.freedesktop.org/drm/drm · fdce2960
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "This is mostly fixes but I missed msm-next pull last week. It's been
        in drm-next.
      
        Otherwise it's a selection of i915, amdgpu and misc fixes, one TTM
        memory leak, nothing really major stands out otherwise.
      
        core:
         - vblank fence timing improvements
      
        dma-buf:
         - improve error handling
      
        ttm:
         - memory leak fix
      
        msm:
         - a6xx speedbin support
         - a508, a509, a512 support
         - various a5xx fixes
         - various dpu fixes
         - qseed3lite support for sm8250
         - dsi fix for msm8994
         - mdp5 fix for framerate bug with cmd mode panels
         - a6xx GMU OOB race fixes that were showing up in CI
         - various addition and removal of semicolons
         - gem submit fix for legacy userspace relocs path
      
        amdgpu:
         - clang warning fix
         - S0ix platform shutdown/poweroff fix
         - misc display fixes
      
        i915:
         - color format fix
         - -Wuninitialised reenabled
         - GVT ww locking, cmd parser fixes
      
        atyfb:
         - fix build
      
        rockchip:
         - AFBC modifier fix"
      
      * tag 'drm-next-2021-02-26' of git://anongit.freedesktop.org/drm/drm: (60 commits)
        drm/panel: kd35t133: allow using non-continuous dsi clock
        drm/rockchip: Require the YTR modifier for AFBC
        drm/ttm: Fix a memory leak
        drm/drm_vblank: set the dma-fence timestamp during send_vblank_event
        dma-fence: allow signaling drivers to set fence timestamp
        dma-buf: heaps: Rework heap allocation hooks to return struct dma_buf instead of fd
        dma-buf: system_heap: Make sure to return an error if we abort
        drm/amd/display: Fix system hang after multiple hotplugs (v3)
        drm/amdgpu: fix shutdown and poweroff process failed with s0ix
        drm/i915: Nuke INTEL_OUTPUT_FORMAT_INVALID
        drm/i915: Enable -Wuninitialized
        drm/amd/display: Remove Assert from dcn10_get_dig_frontend
        drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
        Revert "drm/amd/display: reuse current context instead of recreating one"
        drm/amd/pm/swsmu: Avoid using structure_size uninitialized in smu_cmn_init_soft_gpu_metrics
        fbdev: atyfb: add stubs for aty_{ld,st}_lcd()
        drm/i915/gvt: Introduce per object locking in GVT scheduler.
        drm/i915/gvt: Purge dev_priv->gt
        drm/i915/gvt: Parse default state to update reg whitelist
        dt-bindings: dp-connector: Drop maxItems from -supply
        ...
      fdce2960
    • Linus Torvalds's avatar
      Merge tag 'net-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 5ad3dbab
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Rather small batch this time.
      
        Current release - regressions:
      
         - bcm63xx_enet: fix sporadic kernel panic due to queue length
           mis-accounting
      
        Current release - new code bugs:
      
         - bcm4908_enet: fix RX path possible mem leak
      
         - bcm4908_enet: fix NAPI poll returned value
      
         - stmmac: fix missing spin_lock_init in visconti_eth_dwmac_probe()
      
         - sched: cls_flower: validate ct_state for invalid and reply flags
      
        Previous releases - regressions:
      
         - net: introduce CAN specific pointer in the struct net_device to
           prevent mis-interpreting memory
      
         - phy: micrel: set soft_reset callback to genphy_soft_reset for
           KSZ8081
      
         - psample: fix netlink skb length with tunnel info
      
        Previous releases - always broken:
      
         - icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
      
         - wireguard: device: do not generate ICMP for non-IP packets
      
         - mptcp: provide subflow aware release function to avoid a mem leak
      
         - hsr: add support for EntryForgetTime
      
         - r8169: fix jumbo packet handling on RTL8168e
      
         - octeontx2-af: fix an off by one in rvu_dbg_qsize_write()
      
         - i40e: fix flow for IPv6 next header (extension header)
      
         - phy: icplus: call phy_restore_page() when phy_select_page() fails
      
         - dpaa_eth: fix the access method for the dpaa_napi_portal"
      
      * tag 'net-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (55 commits)
        r8169: fix jumbo packet handling on RTL8168e
        net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081
        net: psample: Fix netlink skb length with tunnel info
        net: broadcom: bcm4908_enet: fix NAPI poll returned value
        net: broadcom: bcm4908_enet: fix RX path possible mem leak
        net: hsr: add support for EntryForgetTime
        net: dsa: sja1105: Remove unneeded cast in sja1105_crc32()
        ibmvnic: fix a race between open and reset
        net: stmmac: Fix missing spin_lock_init in visconti_eth_dwmac_probe()
        net: introduce CAN specific pointer in the struct net_device
        net: usb: qmi_wwan: support ZTE P685M modem
        wireguard: kconfig: use arm chacha even with no neon
        wireguard: queueing: get rid of per-peer ring buffers
        wireguard: device: do not generate ICMP for non-IP packets
        wireguard: peer: put frequently used members above cache lines
        wireguard: selftests: test multiple parallel streams
        wireguard: socket: remove bogus __be32 annotation
        wireguard: avoid double unlikely() notation when using IS_ERR()
        net: qrtr: Fix memory leak in qrtr_tun_open
        vxlan: move debug check after netdev unregister
        ...
      5ad3dbab
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.12-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 268f77b5
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These make additional changes to the platform profile interface merged
        recently and add support for the FPDT ACPI table.
      
        Specifics:
      
         - Rearrange Kconfig handling of ACPI_PLATFORM_PROFILE, add
           "balanced-performance" to the list of supported platform profiles
           and fix up some file references in a comment (Maximilian Luz).
      
         - Add support for parsing the ACPI Firmware Performance Data Table
           (FPDT) and exposing the data from there via sysfs (Zhang Rui)"
      
      * tag 'acpi-5.12-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: platform: Add balanced-performance platform profile
        ACPI: platform: Fix file references in comment
        ACPI: platform: Hide ACPI_PLATFORM_PROFILE option
        ACPI: tables: introduce support for FPDT table
      268f77b5
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2021-02-25' of... · d153e8c1
      Dave Airlie authored
      Merge tag 'drm-intel-next-fixes-2021-02-25' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      A fix for color format check from Ville, plus the re-enable of -Wuninitialized
      from Nathan, and the GVT fixes including fixes for ww locking, cmd parser and
      a general cleanup of dev_priv->gt.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/YDe3pBPV5Kx3hpk6@intel.com
      d153e8c1
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.12-2021-02-24' of... · 9c712c9c
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.12-2021-02-24' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
      
      amd-drm-fixes-5.12-2021-02-24:
      
      amdgpu:
      - Clang warning fix
      - S0ix platform shutdown/poweroff fix
      - Misc display fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210225043853.3880-1-alexander.deucher@amd.com
      9c712c9c