mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-06 13:55:08 +08:00
c646d10dda
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:
|
||
---|---|---|
.. | ||
enetc_cbdr.c | ||
enetc_ethtool.c | ||
enetc_hw.h | ||
enetc_mdio.c | ||
enetc_msg.c | ||
enetc_pci_mdio.c | ||
enetc_pf.c | ||
enetc_pf.h | ||
enetc_ptp.c | ||
enetc_qos.c | ||
enetc_vf.c | ||
enetc.c | ||
enetc.h | ||
Kconfig | ||
Makefile |