1. 10 Jul, 2020 8 commits
  2. 09 Jul, 2020 18 commits
  3. 08 Jul, 2020 14 commits
    • Jarod Wilson's avatar
      bonding: don't need RTNL for ipsec helpers · f548a476
      Jarod Wilson authored
      The bond_ipsec_* helpers don't need RTNL, and can potentially get called
      without it being held, so switch from rtnl_dereference() to
      rcu_dereference() to access bond struct data.
      
      Lightly tested with xfrm bonding, no problems found, should address the
      syzkaller bug referenced below.
      
      Reported-by: syzbot+582c98032903dcc04816@syzkaller.appspotmail.com
      CC: Huy Nguyen <huyn@mellanox.com>
      CC: Saeed Mahameed <saeedm@mellanox.com>
      CC: Jay Vosburgh <j.vosburgh@gmail.com>
      CC: Veaceslav Falico <vfalico@gmail.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Jakub Kicinski <kuba@kernel.org>
      CC: Steffen Klassert <steffen.klassert@secunet.com>
      CC: Herbert Xu <herbert@gondor.apana.org.au>
      CC: netdev@vger.kernel.org
      CC: intel-wired-lan@lists.osuosl.org
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f548a476
    • Fabio Estevam's avatar
      dt-bindings: dp83869: Fix the type of device · 7d25e14e
      Fabio Estevam authored
      DP83869 is an Ethernet PHY, not a charger, so fix the documentation
      accordingly.
      
      Fixes: 4d66c56f ("dt-bindings: net: dp83869: Add TI dp83869 phy")
      Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
      Acked-by: default avatarDan Murphy <dmurphy@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d25e14e
    • Fabio Estevam's avatar
      dt-bindings: dp83867: Fix the type of device · a6b9580b
      Fabio Estevam authored
      DP83867 is an Ethernet PHY, not a charger, so fix the documentation
      accordingly.
      
      Fixes: 74ac28f1 ("dt-bindings: dp83867: Convert DP83867 to yaml")
      Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
      Acked-by: default avatarDan Murphy <dmurphy@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6b9580b
    • Jarod Wilson's avatar
      bonding: deal with xfrm state in all modes and add more error-checking · 5cd24cbe
      Jarod Wilson authored
      It's possible that device removal happens when the bond is in non-AB mode,
      and addition happens in AB mode, so bond_ipsec_del_sa() never gets called,
      which leaves security associations in an odd state if bond_ipsec_add_sa()
      then gets called after switching the bond into AB. Just call add and
      delete universally for all modes to keep things consistent.
      
      However, it's also possible that this code gets called when the system is
      shutting down, and the xfrm subsystem has already been disconnected from
      the bond device, so we need to do some error-checking and bail, lest we
      hit a null ptr deref.
      
      Fixes: a3b658cf ("bonding: allow xfrm offload setup post-module-load")
      CC: Huy Nguyen <huyn@mellanox.com>
      CC: Saeed Mahameed <saeedm@mellanox.com>
      CC: Jay Vosburgh <j.vosburgh@gmail.com>
      CC: Veaceslav Falico <vfalico@gmail.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Jakub Kicinski <kuba@kernel.org>
      CC: Steffen Klassert <steffen.klassert@secunet.com>
      CC: Herbert Xu <herbert@gondor.apana.org.au>
      CC: netdev@vger.kernel.org
      CC: intel-wired-lan@lists.osuosl.org
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5cd24cbe
    • David S. Miller's avatar
      Merge branch 'RTL8366RB-tagging-support' · 32e0d42a
      David S. Miller authored
      Linus Walleij says:
      
      ====================
      RTL8366RB tagging support
      
      This patch set adds DSA tagging support to the RTL8366RB
      DSA driver.
      
      There is a minor performance improvement in the tag parser
      compared to the previous patch set and the review tags
      have been collected.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      32e0d42a
    • Linus Walleij's avatar
      net: dsa: rtl8366rb: Support the CPU DSA tag · a20fafb9
      Linus Walleij authored
      This activates the support to use the CPU tag to properly
      direct ingress traffic to the right port.
      
      Bit 15 in register RTL8368RB_CPU_CTRL_REG can be set to
      1 to disable the insertion of the CPU tag which is what
      the code currently does. The bit 15 define calls this
      setting RTL8368RB_CPU_INSTAG which is confusing since the
      inverse meaning is implied: programmers may think that
      setting this bit to 1 will *enable* inserting the tag
      rather than disabling it, so rename this setting in
      bit 15 to RTL8368RB_CPU_NO_TAG which is more to the
      point.
      
      After this e.g. ping works out-of-the-box with the
      RTL8366RB.
      
      Cc: DENG Qingfang <dqfext@gmail.com>
      Cc: Mauri Sandberg <sandberg@mailfence.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a20fafb9
    • Linus Walleij's avatar
      net: dsa: tag_rtl4_a: Implement Realtek 4 byte A tag · efd7fe68
      Linus Walleij authored
      This implements the known parts of the Realtek 4 byte
      tag protocol version 0xA, as found in the RTL8366RB
      DSA switch.
      
      It is designated as protocol version 0xA as a
      different Realtek 4 byte tag format with protocol
      version 0x9 is known to exist in the Realtek RTL8306
      chips.
      
      The tag and switch chip lacks public documentation, so
      the tag format has been reverse-engineered from
      packet dumps. As only ingress traffic has been available
      for analysis an egress tag has not been possible to
      develop (even using educated guesses about bit fields)
      so this is as far as it gets. It is not known if the
      switch even supports egress tagging.
      
      Excessive attempts to figure out the egress tag format
      was made. When nothing else worked, I just tried all bit
      combinations with 0xannp where a is protocol and p is
      port. I looped through all values several times trying
      to get a response from ping, without any positive
      result.
      
      Using just these ingress tags however, the switch
      functionality is vastly improved and the packets find
      their way into the destination port without any
      tricky VLAN configuration. On the D-Link DIR-685 the
      LAN ports now come up and respond to ping without
      any command line configuration so this is a real
      improvement for users.
      
      Egress packets need to be restricted to the proper
      target ports using VLAN, which the RTL8366RB DSA
      switch driver already sets up.
      
      Cc: DENG Qingfang <dqfext@gmail.com>
      Cc: Mauri Sandberg <sandberg@mailfence.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efd7fe68
    • Meir Lichtinger's avatar
      net/mlx5: Added support for 100Gbps per lane link modes · 12fdafb8
      Meir Lichtinger authored
      This patch exposes new link modes using 100Gbps per lane, including 100G,
      200G and 400G modes.
      Signed-off-by: default avatarMeir Lichtinger <meirl@mellanox.com>
      Reviewed-by: default avatarAya Levin <ayal@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      12fdafb8
    • Meir Lichtinger's avatar
      ethtool: Add support for 100Gbps per lane link modes · 065e0d42
      Meir Lichtinger authored
      Define 100G, 200G and 400G link modes using 100Gbps per lane
      
      LR, ER and FR are defined as a single link mode because they are
      using same technology and by design are fully interoperable.
      EEPROM content indicates if the module is LR, ER, or FR, and the
      user space ethtool decoder is planned to support decoding these
      modes in the EEPROM.
      Signed-off-by: default avatarMeir Lichtinger <meirl@mellanox.com>
      CC: Andrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarAya Levin <ayal@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      065e0d42
    • David S. Miller's avatar
      Merge branch 'bnxt_en-Driver-update-for-net-next' · 66846b7d
      David S. Miller authored
      Michael Chan says:
      
      ====================
      bnxt_en: Driver update for net-next.
      
      This patchset implements ethtool -X to setup user-defined RSS indirection
      table.  The new infrastructure also allows the proper logical ring index
      to be used to populate the RSS indirection when queried by ethtool -x.
      Prior to these patches, we were incorrectly populating the output of
      ethtool -x with internal ring IDs which would make no sense to the user.
      
      The last 2 patches add some cleanups to the VLAN acceleration logic
      and check the firmware capabilities before allowing VLAN acceleration
      offloads.
      
      v4: Move bnxt_get_rxfh_indir_size() fix to a new patch #2.
          Modify patch #7 to revert RSS map to default only when necessary.
      
      v3: Use ALIGN() in patch 5.
          Add warning messages in patch 6.
      
      v2: Some RSS indirection table changes requested by Jakub Kicinski.
      ====================
      Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      66846b7d
    • Edwin Peer's avatar
      bnxt_en: allow firmware to disable VLAN offloads · 1da63ddd
      Edwin Peer authored
      Bare-metal use cases require giving firmware and the embedded
      application processor control over VLAN offloads. The driver should
      not attempt to override or utilize this feature in such scenarios
      since it will not work as expected.
      Signed-off-by: default avatarEdwin Peer <edwin.peer@broadcom.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1da63ddd
    • Edwin Peer's avatar
      bnxt_en: clean up VLAN feature bit handling · a196e96b
      Edwin Peer authored
      The hardware VLAN offload feature on our NIC does not have separate
      knobs for handling customer and service tags on RX. Either offloading
      of both must be enabled or both must be disabled. Introduce definitions
      for the combined feature set in order to clean up the code and make
      this constraint more clear. Technically these features can be separately
      enabled on TX, however, since the default is to turn both on, the
      combined TX feature set is also introduced for code consistency.
      Signed-off-by: default avatarEdwin Peer <edwin.peer@broadcom.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a196e96b
    • Michael Chan's avatar
      bnxt_en: Implement ethtool -X to set indirection table. · bd3191b5
      Michael Chan authored
      With the new infrastructure in place, we can now support the setting of
      the indirection table from ethtool.
      
      When changing channels, in a rare case that firmware cannot reserve the
      rings that were promised, we will still try to keep the RSS map and only
      revert to default when absolutely necessary.
      
      v4: Revert RSS map to default during ring change only when absolutely
          necessary.
      
      v3: Add warning messages when firmware cannot reserve the requested RX
          rings, and when the RSS table entries have to change to default.
      
      v2: When changing channels, if the RSS table size changes and RSS map
          is non-default, return error.
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd3191b5
    • Michael Chan's avatar
      bnxt_en: Return correct RSS indirection table entries to ethtool -x. · adc38ac6
      Michael Chan authored
      Now that we have the logical indirection table, we can return these
      proper logical indices directly to ethtool -x instead of the physical
      IDs.
      Reported-by: default avatarJakub Kicinski <kicinski@fb.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      adc38ac6