Skip to content
  1. Feb 10, 2021
    • Vladimir Oltean's avatar
      net: dsa: felix: implement port flushing on .phylink_mac_link_down · eb4733d7
      Vladimir Oltean authored
      There are several issues which may be seen when the link goes down while
      forwarding traffic, all of which can be attributed to the fact that the
      port flushing procedure from the reference manual was not closely
      followed.
      
      With flow control enabled on both the ingress port and the egress port,
      it may happen when a link goes down that Ethernet packets are in flight.
      In flow control mode, frames are held back and not dropped. When there
      is enough traffic in flight (example: iperf3 TCP), then the ingress port
      might enter congestion and never exit that state. This is a problem,
      because it is the egress port's link that went down, and that has caused
      the inability of the ingress port to send packets to any other port.
      This is solved by flushing the egress port's queues when it goes down.
      
      There is also a problem when performing stream splitting for
      IEEE 802.1CB traffic (not yet upstream, but a sort of multicast,
      basically). There, if one port from the destination ports mask goes
      down, splitting the stream towards the other destinations will no longer
      be performed. This can be traced down to this line:
      
      	ocelot_port_writel(ocelot_port, 0, DEV_MAC_ENA_CFG);
      
      which should have been instead, as per the reference manual:
      
      	ocelot_port_rmwl(ocelot_port, 0, DEV_MAC_ENA_CFG_RX_ENA,
      			 DEV_MAC_ENA_CFG);
      
      Basically only DEV_MAC_ENA_CFG_RX_ENA should be disabled, but not
      DEV_MAC_ENA_CFG_TX_ENA - I don't have further insight into why that is
      the case, but apparently multicasting to several ports will cause issues
      if at least one of them doesn't have DEV_MAC_ENA_CFG_TX_ENA set.
      
      I am not sure what the state of the Ocelot VSC7514 driver is, but
      probably not as bad as Felix/Seville, since VSC7514 uses phylib and has
      the following in ocelot_adjust_link:
      
      	if (!phydev->link)
      		return;
      
      therefore the port is not really put down when the link is lost, unlike
      the DSA drivers which use .phylink_mac_link_down for that.
      
      Nonetheless, I put ocelot_port_flush() in the common ocelot.c because it
      needs to access some registers from drivers/net/ethernet/mscc/ocelot_rew.h
      which are not exported in include/soc/mscc/ and a bugfix patch should
      probably not move headers around.
      
      Fixes: bdeced75
      
       ("net: dsa: felix: Add PCS operations for PHYLINK")
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb4733d7
  2. Feb 09, 2021
  3. Feb 07, 2021
  4. Feb 06, 2021
  5. Feb 05, 2021
  6. Feb 04, 2021
  7. Feb 03, 2021
    • Linus Torvalds's avatar
      Merge tag 'clang-format-for-linux-v5.11-rc7' of git://github.com/ojeda/linux · 3aaf0a27
      Linus Torvalds authored
      Pull clang-format update from Miguel Ojeda:
       "Update with the latest for_each macro list"
      
      * tag 'clang-format-for-linux-v5.11-rc7' of git://github.com/ojeda/linux:
        clang-format: Update with the latest for_each macro list
      3aaf0a27
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.11-1' of git://git.infradead.org/users/hch/dma-mapping · 7d36ccd4
      Linus Torvalds authored
      Pull dma-mapping fix from Christoph Hellwig:
       "Fix a kernel crash in the new dma-mapping benchmark test (Barry Song)"
      
      * tag 'dma-mapping-5.11-1' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: benchmark: fix kernel crash when dma_map_single fails
      7d36ccd4
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 2e02677e
      Linus Torvalds authored
      Pull vdpa fix from Michael Tsirkin:
       "A single mlx bugfix"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vdpa/mlx5: Fix memory key MTT population
      2e02677e
    • Linus Torvalds's avatar
      Merge tag 'net-5.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · a9925628
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Networking fixes for 5.11-rc7, including fixes from bpf and mac80211
        trees.
      
        Current release - regressions:
      
         - ip_tunnel: fix mtu calculation
      
         - mlx5: fix function calculation for page trees
      
        Previous releases - regressions:
      
         - vsock: fix the race conditions in multi-transport support
      
         - neighbour: prevent a dead entry from updating gc_list
      
         - dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
      
        Previous releases - always broken:
      
         - bpf, cgroup: two copy_{from,to}_user() warn_on_once splats for BPF
           cgroup getsockopt infra when user space is trying to race against
           optlen, from Loris Reiff.
      
         - bpf: add missing fput() in BPF inode storage map update helper
      
         - udp: ipv4: manipulate network header of NATed UDP GRO fraglist
      
         - mac80211: fix station rate table updates on assoc
      
         - r8169: work around RTL8125 UDP HW bug
      
         - igc: report speed and duplex as unknown when device is runtime
           suspended
      
         - rxrpc: fix deadlock around release of dst cached on udp tunnel"
      
      * tag 'net-5.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (36 commits)
        net: hsr: align sup_multicast_addr in struct hsr_priv to u16 boundary
        net: ipa: fix two format specifier errors
        net: ipa: use the right accessor in ipa_endpoint_status_skip()
        net: ipa: be explicit about endianness
        net: ipa: add a missing __iomem attribute
        net: ipa: pass correct dma_handle to dma_free_coherent()
        r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
        net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
        net: mvpp2: TCAM entry enable should be written after SRAM data
        net: lapb: Copy the skb before sending a packet
        net/mlx5e: Release skb in case of failure in tc update skb
        net/mlx5e: Update max_opened_tc also when channels are closed
        net/mlx5: Fix leak upon failure of rule creation
        net/mlx5: Fix function calculation for page trees
        docs: networking: swap words in icmp_errors_use_inbound_ifaddr doc
        udp: ipv4: manipulate network header of NATed UDP GRO fraglist
        net: ip_tunnel: fix mtu calculation
        vsock: fix the race conditions in multi-transport support
        net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
        ibmvnic: device remove has higher precedence over reset
        ...
      a9925628