Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
This commit is contained in:
@@ -58,8 +58,8 @@
|
||||
#include "bnx2_fw.h"
|
||||
|
||||
#define DRV_MODULE_NAME "bnx2"
|
||||
#define DRV_MODULE_VERSION "2.0.8"
|
||||
#define DRV_MODULE_RELDATE "Feb 15, 2010"
|
||||
#define DRV_MODULE_VERSION "2.0.9"
|
||||
#define DRV_MODULE_RELDATE "April 27, 2010"
|
||||
#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw"
|
||||
#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw"
|
||||
#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j9.fw"
|
||||
@@ -651,9 +651,10 @@ bnx2_napi_enable(struct bnx2 *bp)
|
||||
}
|
||||
|
||||
static void
|
||||
bnx2_netif_stop(struct bnx2 *bp)
|
||||
bnx2_netif_stop(struct bnx2 *bp, bool stop_cnic)
|
||||
{
|
||||
bnx2_cnic_stop(bp);
|
||||
if (stop_cnic)
|
||||
bnx2_cnic_stop(bp);
|
||||
if (netif_running(bp->dev)) {
|
||||
int i;
|
||||
|
||||
@@ -671,14 +672,15 @@ bnx2_netif_stop(struct bnx2 *bp)
|
||||
}
|
||||
|
||||
static void
|
||||
bnx2_netif_start(struct bnx2 *bp)
|
||||
bnx2_netif_start(struct bnx2 *bp, bool start_cnic)
|
||||
{
|
||||
if (atomic_dec_and_test(&bp->intr_sem)) {
|
||||
if (netif_running(bp->dev)) {
|
||||
netif_tx_wake_all_queues(bp->dev);
|
||||
bnx2_napi_enable(bp);
|
||||
bnx2_enable_int(bp);
|
||||
bnx2_cnic_start(bp);
|
||||
if (start_cnic)
|
||||
bnx2_cnic_start(bp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4758,8 +4760,12 @@ bnx2_reset_chip(struct bnx2 *bp, u32 reset_code)
|
||||
rc = bnx2_alloc_bad_rbuf(bp);
|
||||
}
|
||||
|
||||
if (bp->flags & BNX2_FLAG_USING_MSIX)
|
||||
if (bp->flags & BNX2_FLAG_USING_MSIX) {
|
||||
bnx2_setup_msix_tbl(bp);
|
||||
/* Prevent MSIX table reads and write from timing out */
|
||||
REG_WR(bp, BNX2_MISC_ECO_HW_CTL,
|
||||
BNX2_MISC_ECO_HW_CTL_LARGE_GRC_TMOUT_EN);
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
@@ -6272,12 +6278,12 @@ bnx2_reset_task(struct work_struct *work)
|
||||
return;
|
||||
}
|
||||
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
|
||||
bnx2_init_nic(bp, 1);
|
||||
|
||||
atomic_set(&bp->intr_sem, 1);
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
rtnl_unlock();
|
||||
}
|
||||
|
||||
@@ -6319,7 +6325,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
|
||||
struct bnx2 *bp = netdev_priv(dev);
|
||||
|
||||
if (netif_running(dev))
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, false);
|
||||
|
||||
bp->vlgrp = vlgrp;
|
||||
|
||||
@@ -6330,7 +6336,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
|
||||
if (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)
|
||||
bnx2_fw_sync(bp, BNX2_DRV_MSG_CODE_KEEP_VLAN_UPDATE, 0, 1);
|
||||
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, false);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7050,9 +7056,9 @@ bnx2_set_coalesce(struct net_device *dev, struct ethtool_coalesce *coal)
|
||||
bp->stats_ticks &= BNX2_HC_STATS_TICKS_HC_STAT_TICKS;
|
||||
|
||||
if (netif_running(bp->dev)) {
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
bnx2_init_nic(bp, 0);
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -7082,7 +7088,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
|
||||
/* Reset will erase chipset stats; save them */
|
||||
bnx2_save_stats(bp);
|
||||
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET);
|
||||
bnx2_free_skbs(bp);
|
||||
bnx2_free_mem(bp);
|
||||
@@ -7110,7 +7116,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
|
||||
bnx2_setup_cnic_irq_info(bp);
|
||||
mutex_unlock(&bp->cnic_lock);
|
||||
#endif
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -7363,7 +7369,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
|
||||
if (etest->flags & ETH_TEST_FL_OFFLINE) {
|
||||
int i;
|
||||
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_DIAG);
|
||||
bnx2_free_skbs(bp);
|
||||
|
||||
@@ -7382,7 +7388,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
|
||||
bnx2_shutdown_chip(bp);
|
||||
else {
|
||||
bnx2_init_nic(bp, 1);
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
}
|
||||
|
||||
/* wait for link up */
|
||||
@@ -8376,7 +8382,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||
return 0;
|
||||
|
||||
flush_scheduled_work();
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
netif_device_detach(dev);
|
||||
del_timer_sync(&bp->timer);
|
||||
bnx2_shutdown_chip(bp);
|
||||
@@ -8398,7 +8404,7 @@ bnx2_resume(struct pci_dev *pdev)
|
||||
bnx2_set_power_state(bp, PCI_D0);
|
||||
netif_device_attach(dev);
|
||||
bnx2_init_nic(bp, 1);
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -8425,7 +8431,7 @@ static pci_ers_result_t bnx2_io_error_detected(struct pci_dev *pdev,
|
||||
}
|
||||
|
||||
if (netif_running(dev)) {
|
||||
bnx2_netif_stop(bp);
|
||||
bnx2_netif_stop(bp, true);
|
||||
del_timer_sync(&bp->timer);
|
||||
bnx2_reset_nic(bp, BNX2_DRV_MSG_CODE_RESET);
|
||||
}
|
||||
@@ -8482,7 +8488,7 @@ static void bnx2_io_resume(struct pci_dev *pdev)
|
||||
|
||||
rtnl_lock();
|
||||
if (netif_running(dev))
|
||||
bnx2_netif_start(bp);
|
||||
bnx2_netif_start(bp, true);
|
||||
|
||||
netif_device_attach(dev);
|
||||
rtnl_unlock();
|
||||
|
Viittaa uudesa ongelmassa
Block a user