Skip to content

Commit 48b3cd6

Browse files
michalpiekoskuba-moo
authored andcommitted
net: stmmac: skip VLAN restore when VLAN hash ops are missing
stmmac_vlan_restore() unconditionally calls stmmac_vlan_update() when NETIF_F_VLAN_FEATURES is set. On platforms where priv->hw->vlan (or ->update_vlan_hash) is not provided, stmmac_update_vlan_hash() returns -EINVAL via stmmac_do_void_callback(), resulting in a spurious "Failed to restore VLANs" error even when no VLAN filtering is in use. Remove not needed comment. Remove not used return value from stmmac_vlan_restore(). Tested on Orange Pi Zero 3. Fixes: bd7ad51 ("net: stmmac: Fix VLAN HW state restore") Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl> Link: https://patch.msgid.link/20260328-vlan-restore-error-v4-1-f88624c530dc@mmpsystems.pl Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent c0fd0fe commit 48b3cd6

1 file changed

Lines changed: 4 additions & 10 deletions

File tree

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ static void stmmac_tx_timer_arm(struct stmmac_priv *priv, u32 queue);
156156
static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue);
157157
static void stmmac_set_dma_operation_mode(struct stmmac_priv *priv, u32 txmode,
158158
u32 rxmode, u32 chan);
159-
static int stmmac_vlan_restore(struct stmmac_priv *priv);
159+
static void stmmac_vlan_restore(struct stmmac_priv *priv);
160160

161161
#ifdef CONFIG_DEBUG_FS
162162
static const struct net_device_ops stmmac_netdev_ops;
@@ -6859,21 +6859,15 @@ static int stmmac_vlan_rx_kill_vid(struct net_device *ndev, __be16 proto, u16 vi
68596859
return ret;
68606860
}
68616861

6862-
static int stmmac_vlan_restore(struct stmmac_priv *priv)
6862+
static void stmmac_vlan_restore(struct stmmac_priv *priv)
68636863
{
6864-
int ret;
6865-
68666864
if (!(priv->dev->features & NETIF_F_VLAN_FEATURES))
6867-
return 0;
6865+
return;
68686866

68696867
if (priv->hw->num_vlan)
68706868
stmmac_restore_hw_vlan_rx_fltr(priv, priv->dev, priv->hw);
68716869

6872-
ret = stmmac_vlan_update(priv, priv->num_double_vlans);
6873-
if (ret)
6874-
netdev_err(priv->dev, "Failed to restore VLANs\n");
6875-
6876-
return ret;
6870+
stmmac_vlan_update(priv, priv->num_double_vlans);
68776871
}
68786872

68796873
static int stmmac_bpf(struct net_device *dev, struct netdev_bpf *bpf)

0 commit comments

Comments
 (0)