linux/drivers/net/ethernet/freescale/enetc
Vladimir Oltean c646d10dda net: enetc: don't overwrite the RSS indirection table when initializing
After the blamed patch, all RX traffic gets hashed to CPU 0 because the
hashing indirection table set up in:

enetc_pf_probe
-> enetc_alloc_si_resources
   -> enetc_configure_si
      -> enetc_setup_default_rss_table

is overwritten later in:

enetc_pf_probe
-> enetc_init_port_rss_memory

which zero-initializes the entire port RSS table in order to avoid ECC errors.

The trouble really is that enetc_init_port_rss_memory really neads
enetc_alloc_si_resources to be called, because it depends upon
enetc_alloc_cbdr and enetc_setup_cbdr. But that whole enetc_configure_si
thing could have been better thought out, it has nothing to do in a
function called "alloc_si_resources", especially since its counterpart,
"free_si_resources", does nothing to unwind the configuration of the SI.

The point is, we need to pull out enetc_configure_si out of
enetc_alloc_resources, and move it after enetc_init_port_rss_memory.
This allows us to set up the default RSS indirection table after
initializing the memory.

Fixes: 07bf34a50e ("net: enetc: initialize the RFS and RSS memories")
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-01 13:34:47 -08:00
..
enetc_cbdr.c enetc: Configure the Time-Aware Scheduler via tc-taprio offload 2019-11-16 12:49:16 -08:00
enetc_ethtool.c enetc: Fix reporting of h/w packet counters 2020-12-07 16:57:38 -08:00
enetc_hw.h net: enetc: initialize the RFS and RSS memories 2021-02-04 20:21:39 -08:00
enetc_mdio.c enetc: reorder macros and functions 2021-01-05 15:19:19 -08:00
enetc_msg.c enetc: Add vf to pf messaging support 2019-01-24 21:55:53 -08:00
enetc_pci_mdio.c net: enetc: fix an issue about leak system resources 2020-05-04 10:51:20 -07:00
enetc_pf.c net: enetc: don't overwrite the RSS indirection table when initializing 2021-03-01 13:34:47 -08:00
enetc_pf.h enetc: Migrate to PHYLINK and PCS_LYNX 2020-10-11 11:04:42 -07:00
enetc_ptp.c enetc: Add missing call to 'pci_free_irq_vectors()' in probe and remove functions 2019-08-31 23:53:17 -07:00
enetc_qos.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-11-27 18:25:27 -08:00
enetc_vf.c net: enetc: don't overwrite the RSS indirection table when initializing 2021-03-01 13:34:47 -08:00
enetc.c net: enetc: don't overwrite the RSS indirection table when initializing 2021-03-01 13:34:47 -08:00
enetc.h net: enetc: don't overwrite the RSS indirection table when initializing 2021-03-01 13:34:47 -08:00
Kconfig enetc: auto select PHYLIB and MDIO_DEVRES 2021-02-11 18:12:47 -08:00
Makefile enetc: Make MDIO accessors more generic and export to include/linux/fsl 2020-01-05 23:22:32 -08:00