summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSathya Perla <sathyap@serverengines.com>2009-03-20 07:56:46 +0100
committerDavid S. Miller <davem@davemloft.net>2009-03-20 07:56:46 +0100
commit1ab1ab7543de53c945ea24140409ef67ed173eb4 (patch)
treed9506f9bcbf3064368172030edc8c837f9c9a234
parentbe2net: replenish when posting to rx-queue is starved in out of mem conditions (diff)
downloadlinux-1ab1ab7543de53c945ea24140409ef67ed173eb4.tar.xz
linux-1ab1ab7543de53c945ea24140409ef67ed173eb4.zip
be2net: fix to restore vlan ids into BE2 during a IF DOWN->UP cycle
This is a patch to reconfigure vlan-ids during an i/f down/up cycle Signed-off-by: Sathya Perla <sathyap@serverengines.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/benet/be_main.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 80fe1e055d91..0ecaffb70e58 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -473,7 +473,7 @@ static int be_change_mtu(struct net_device *netdev, int new_mtu)
* program them in BE. If more than BE_NUM_VLANS_SUPPORTED are configured,
* set the BE in promiscuous VLAN mode.
*/
-static void be_vids_config(struct net_device *netdev)
+static void be_vid_config(struct net_device *netdev)
{
struct be_adapter *adapter = netdev_priv(netdev);
u16 vtag[BE_NUM_VLANS_SUPPORTED];
@@ -516,7 +516,7 @@ static void be_vlan_add_vid(struct net_device *netdev, u16 vid)
adapter->num_vlans++;
adapter->vlan_tag[vid] = 1;
- be_vids_config(netdev);
+ be_vid_config(netdev);
}
static void be_vlan_rem_vid(struct net_device *netdev, u16 vid)
@@ -527,7 +527,7 @@ static void be_vlan_rem_vid(struct net_device *netdev, u16 vid)
adapter->vlan_tag[vid] = 0;
vlan_group_set_device(adapter->vlan_grp, vid, NULL);
- be_vids_config(netdev);
+ be_vid_config(netdev);
}
static void be_set_multicast_filter(struct net_device *netdev)
@@ -1430,6 +1430,8 @@ static int be_open(struct net_device *netdev)
if (status != 0)
goto do_none;
+ be_vid_config(netdev);
+
status = be_cmd_set_flow_control(ctrl, true, true);
if (status != 0)
goto if_destroy;
@@ -1864,8 +1866,6 @@ static int be_resume(struct pci_dev *pdev)
pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
- be_vids_config(netdev);
-
if (netif_running(netdev)) {
rtnl_lock();
be_open(netdev);