bnxt_en: Add logical RSS indirection table structure.
authorMichael Chan <michael.chan@broadcom.com>
Wed, 8 Jul 2020 11:53:55 +0000 (07:53 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jul 2020 22:21:13 +0000 (15:21 -0700)
commit1667cbf6a4ebe0901bd93ef0d6defd35006fd2be
tree29b1803870a73a441dbe7d6be1930ade68cf911b
parentb73c1d08a0ec33f2ddafdd21d3a48614da4e6853
bnxt_en: Add logical RSS indirection table structure.

The driver currently does not keep track of the logical RSS indirection
table.  The hardware RSS table is set up with standard default ring
distribution when initializing the chip.  This makes it difficult to
support user sepcified indirection table entries.  As a first step, add
the logical table in the main bnxt structure and allocate it according
to chip specific table size.  Add a function that sets up default
RSS distribution based on the number of RX rings.

v4: Use bnxt_get_rxfh_indir_size() for the current RSS table size.

v2: Use kmalloc_array() since we init. all entries afterwards.
    Use ALIGN() to roundup the RSS table size.
    Use ethtool_rxfh_indir_default() to init. the default entries.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h