1. 19 Jun, 2019 30 commits
  2. 18 Jun, 2019 10 commits
    • Arnd Bergmann's avatar
      qed: Fix -Wmaybe-uninitialized false positive · 815deee0
      Arnd Bergmann authored
      A previous attempt to shut up the uninitialized variable use
      warning was apparently insufficient. When CONFIG_PROFILE_ANNOTATED_BRANCHES
      is set, gcc-8 still warns, because the unlikely() check in DP_NOTICE()
      causes it to no longer track the state of all variables correctly:
      
      drivers/net/ethernet/qlogic/qed/qed_dev.c: In function 'qed_llh_set_ppfid_affinity':
      drivers/net/ethernet/qlogic/qed/qed_dev.c:798:47: error: 'abs_ppfid' may be used uninitialized in this function [-Werror=maybe-uninitialized]
        addr = NIG_REG_PPF_TO_ENGINE_SEL + abs_ppfid * 0x4;
                                           ~~~~~~~~~~^~~~~
      
      This is not a nice workaround, but always initializing the output from
      qed_llh_abs_ppfid() at least shuts up the false positive reliably.
      
      Fixes: 79284ade ("qed: Add llh ppfid interface and 100g support for offload protocols")
      Fixes: 8e2ea3ea ("qed: Fix static checker warning")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: Michal Kalderon <michal.kalderon@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      815deee0
    • Geert Uytterhoeven's avatar
      ps3_gelic: Use [] to denote a flexible array member · b594850e
      Geert Uytterhoeven authored
      Flexible array members should be denoted using [] instead of [0], else
      gcc will not warn when they are no longer at the end of a struct.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b594850e
    • Denis Kirjanov's avatar
      ipoib: show VF broadcast address · 75345f88
      Denis Kirjanov authored
      in IPoIB case we can't see a VF broadcast address for but
      can see for PF
      
      Before:
      11: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
      state UP mode DEFAULT group default qlen 256
          link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
          vf 0 MAC 14:80:00:00:66:fe, spoof checking off, link-state disable,
      trust off, query_rss off
      ...
      
      After:
      11: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
      state UP mode DEFAULT group default qlen 256
          link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
          vf 0     link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff, spoof
      checking off, link-state disable, trust off, query_rss off
      
      v1->v2: add the IFLA_VF_BROADCAST constant
      v2->v3: put IFLA_VF_BROADCAST at the end
      to avoid KABI breakage and set NLA_REJECT
      dev_setlink
      Signed-off-by: default avatarDenis Kirjanov <kda@linux-powerpc.org>
      Acked-by: default avatarDoug Ledford <dledford@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      75345f88
    • Denis Kirjanov's avatar
      ipoib: correcly show a VF hardware address · 64d701c6
      Denis Kirjanov authored
      in the case of IPoIB with SRIOV enabled hardware
      ip link show command incorrecly prints
      0 instead of a VF hardware address.
      
      Before:
      11: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
      state UP mode DEFAULT group default qlen 256
          link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
          vf 0 MAC 00:00:00:00:00:00, spoof checking off, link-state disable,
      trust off, query_rss off
      ...
      After:
      11: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
      state UP mode DEFAULT group default qlen 256
          link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
          vf 0     link/infiniband
      80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:a4:3e:7c brd
      00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff, spoof
      checking off, link-state disable, trust off, query_rss off
      
      v1->v2: just copy an address without modifing ifla_vf_mac
      v2->v3: update the changelog
      Signed-off-by: default avatarDenis Kirjanov <kda@linux-powerpc.org>
      Acked-by: default avatarDoug Ledford <dledford@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64d701c6
    • David S. Miller's avatar
      Merge branch 'mlxsw-Improve-IPv6-route-insertion-rate' · 2ae6b594
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Improve IPv6 route insertion rate
      
      Unlike IPv4, an IPv6 multipath route in the kernel is composed from
      multiple sibling routes, each representing a single nexthop.
      
      Therefore, an addition of a multipath route with N nexthops translates
      to N in-kernel notifications. This is inefficient for device drivers
      that need to program the route to the underlying device. Each time a new
      nexthop is appended, a new nexthop group needs to be constructed and the
      old one deleted.
      
      This patchset improves the situation by sending a single notification
      for a multipath route addition / deletion instead of one per-nexthop.
      When adding thousands of multipath routes with 16 nexthops, I measured
      an improvement of about x10 in the insertion rate.
      
      Patches #1-#3 add a flag that indicates that in-kernel notifications
      need to be suppressed and extend the IPv6 FIB notification info with
      information about the number of sibling routes that are being notified.
      
      Patches #4-#5 adjust the two current listeners to these notifications to
      ignore notifications about IPv6 multipath routes.
      
      Patches #6-#7 adds add / delete notifications for IPv6 multipath routes.
      
      Patches #8-#14 do the same for mlxsw.
      
      Patch #15 finally removes the limitations added in patches #4-#5 and
      stops the kernel from sending a notification for each added / deleted
      nexthop.
      
      Patch #16 adds test cases.
      
      v2 (David Ahern):
      * Remove patch adjusting netdevsim to consume resources for each
        fib6_info. Instead, consume one resource for the entire multipath
        route
      * Remove 'multipath_rt' usage in patch #10
      * Remove 'multipath_rt' from 'struct fib6_entry_notifier_info' in patch
        #15. The member is only removed in this patch to prevent drivers from
        processing multipath routes twice during the series
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ae6b594
    • Ido Schimmel's avatar
      selftests: mlxsw: Add a test for FIB offload indication · 12ee8220
      Ido Schimmel authored
      Test that the offload indication for unicast routes is correctly set in
      different scenarios. IPv4 support will be added in the future.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      12ee8220
    • Ido Schimmel's avatar
      ipv6: Stop sending in-kernel notifications for each nexthop · d5382fef
      Ido Schimmel authored
      Both listeners - mlxsw and netdevsim - of IPv6 FIB notifications are now
      ready to handle IPv6 multipath notifications.
      
      Therefore, stop ignoring such notifications in both drivers and stop
      sending notification for each added / deleted nexthop.
      
      v2:
      * Remove 'multipath_rt' from 'struct fib6_entry_notifier_info'
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d5382fef
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Create IPv6 multipath routes in one go · 2d9dd7ec
      Ido Schimmel authored
      Allow the driver to create an IPv6 multipath route in one go by passing
      an array of sibling routes and iterating over them.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2d9dd7ec
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Add / delete multiple IPv6 nexthops · d21afd30
      Ido Schimmel authored
      Currently, the functions that take care of populating IPv6 nexthop
      groups only add / delete a single nexthop.
      
      Prepare them to handle multiple routes in one notification by passing an
      array of routes and adding / deleting all of them.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d21afd30
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Pass array of routes to route handling functions · 921bc539
      Ido Schimmel authored
      Prepare the driver to handle multiple routes in a single notification by
      passing an array of routes to the functions that actually add / delete a
      route.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      921bc539