mirror of
https://github.com/torvalds/linux.git
synced 2026-09-12 04:23:03 +02:00
net: stmmac: reconfigure RX packet parser table in stmmac_hw_setup() after reset
The core software reset issued in stmmac_init_dma_engine() during
ndo_open() callback clears the MTL RX packet parser registers, but
stmmac_rxp_config() is only invoked from the cls_u32 add/delete paths.
After an ifdown/ifup cycle the hardware therefore runs with the default
all-pass table while priv->tc_entries still reports the filters as
installed. Re-apply the RX packet parser table from priv->tc_entries in
stmmac_hw_setup(), right after the software reset, so the filters are
restored when the interface is brought up again.
Fixes: 4dbbe8dde8 ("net: stmmac: Add support for U32 TC filter using Flexible RX Parser")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@oss.qualcomm.com>
Link: https://patch.msgid.link/20260831-stmmac_tc_cls32_reconfigure-v1-1-21cb459e64ae@oss.qualcomm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
7db28abbea
commit
6b8fed2675
|
|
@ -3676,6 +3676,14 @@ static int stmmac_hw_setup(struct net_device *dev)
|
|||
/* Initialize MTL*/
|
||||
stmmac_mtl_configuration(priv);
|
||||
|
||||
/* Apply the RX packet parser table */
|
||||
if (priv->tc_entries) {
|
||||
ret = stmmac_rxp_config(priv, priv->hw->pcsr, priv->tc_entries,
|
||||
priv->tc_entries_max);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Initialize Safety Features */
|
||||
stmmac_safety_feat_configuration(priv);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user