aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/benet/be_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/benet/be_main.c')
-rw-r--r--drivers/net/benet/be_main.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 43180dc210a2..c0bd20356eaf 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -1611,11 +1611,21 @@ static int be_open(struct net_device *netdev)
1611 status = be_cmd_link_status_query(adapter, &link_up, &mac_speed, 1611 status = be_cmd_link_status_query(adapter, &link_up, &mac_speed,
1612 &link_speed); 1612 &link_speed);
1613 if (status) 1613 if (status)
1614 return status; 1614 goto ret_sts;
1615 be_link_status_update(adapter, link_up); 1615 be_link_status_update(adapter, link_up);
1616 1616
1617 status = be_vid_config(adapter);
1618 if (status)
1619 goto ret_sts;
1620
1621 status = be_cmd_set_flow_control(adapter,
1622 adapter->tx_fc, adapter->rx_fc);
1623 if (status)
1624 goto ret_sts;
1625
1617 schedule_delayed_work(&adapter->work, msecs_to_jiffies(100)); 1626 schedule_delayed_work(&adapter->work, msecs_to_jiffies(100));
1618 return 0; 1627ret_sts:
1628 return status;
1619} 1629}
1620 1630
1621static int be_setup(struct be_adapter *adapter) 1631static int be_setup(struct be_adapter *adapter)
@@ -1649,17 +1659,8 @@ static int be_setup(struct be_adapter *adapter)
1649 if (status != 0) 1659 if (status != 0)
1650 goto rx_qs_destroy; 1660 goto rx_qs_destroy;
1651 1661
1652 status = be_vid_config(adapter);
1653 if (status != 0)
1654 goto mccqs_destroy;
1655
1656 status = be_cmd_set_flow_control(adapter, true, true);
1657 if (status != 0)
1658 goto mccqs_destroy;
1659 return 0; 1662 return 0;
1660 1663
1661mccqs_destroy:
1662 be_mcc_queues_destroy(adapter);
1663rx_qs_destroy: 1664rx_qs_destroy:
1664 be_rx_queues_destroy(adapter); 1665 be_rx_queues_destroy(adapter);
1665tx_qs_destroy: 1666tx_qs_destroy:
@@ -1910,6 +1911,10 @@ static void be_netdev_init(struct net_device *netdev)
1910 1911
1911 adapter->rx_csum = true; 1912 adapter->rx_csum = true;
1912 1913
1914 /* Default settings for Rx and Tx flow control */
1915 adapter->rx_fc = true;
1916 adapter->tx_fc = true;
1917
1913 netif_set_gso_max_size(netdev, 65535); 1918 netif_set_gso_max_size(netdev, 65535);
1914 1919
1915 BE_SET_NETDEV_OPS(netdev, &be_netdev_ops); 1920 BE_SET_NETDEV_OPS(netdev, &be_netdev_ops);
@@ -2172,6 +2177,7 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state)
2172 be_close(netdev); 2177 be_close(netdev);
2173 rtnl_unlock(); 2178 rtnl_unlock();
2174 } 2179 }
2180 be_cmd_get_flow_control(adapter, &adapter->tx_fc, &adapter->rx_fc);
2175 be_clear(adapter); 2181 be_clear(adapter);
2176 2182
2177 pci_save_state(pdev); 2183 pci_save_state(pdev);