tg3: Refine tg3_vlan_rx_register()
Subsystems (2)
PATCH 4/14 tg3: Refine tg3_vlan_rx_register()
tg3_vlan_rx_register() touches the hardware if netif_running() returns false. This patch fixes the problem.
Signed-off-by Matt Carlson <[email protected]>
Signed-off-by Benjamin Li <[email protected]>
Signed-off-by Michael Chan <[email protected]>
--- drivers/net/tg3.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
drivers/net/tg3.c +7 -4
@@ -9896,8 +9896,12 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) {struct tg3 *tp =netdev_priv (dev); -if (netif_running (dev)) -tg3_netif_stop (tp); +if (!netif_running (dev)) { + tp->vlgrp = grp; +return ; + } + +tg3_netif_stop (tp);tg3_full_lock (tp,0 );
@@ -9906,8 +9910,7 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)/* Update RX_MODE_KEEP_VLAN_TAG bit in RX_MODE register. */ __tg3_set_rx_mode (dev); -if (netif_running (dev)) -tg3_netif_start (tp); +tg3_netif_start (tp);tg3_full_unlock (tp); }
Signature · 1 line
1.6.0.6