aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r--drivers/net/bnx2.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 7635736cc791..d55b0f7939a6 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -57,8 +57,8 @@
57 57
58#define DRV_MODULE_NAME "bnx2" 58#define DRV_MODULE_NAME "bnx2"
59#define PFX DRV_MODULE_NAME ": " 59#define PFX DRV_MODULE_NAME ": "
60#define DRV_MODULE_VERSION "1.4.42" 60#define DRV_MODULE_VERSION "1.4.43"
61#define DRV_MODULE_RELDATE "June 12, 2006" 61#define DRV_MODULE_RELDATE "June 28, 2006"
62 62
63#define RUN_AT(x) (jiffies + (x)) 63#define RUN_AT(x) (jiffies + (x))
64 64
@@ -1676,7 +1676,7 @@ bnx2_tx_int(struct bnx2 *bp)
1676 1676
1677 tx_free_bd += last + 1; 1677 tx_free_bd += last + 1;
1678 1678
1679 dev_kfree_skb_irq(skb); 1679 dev_kfree_skb(skb);
1680 1680
1681 hw_cons = bp->hw_tx_cons = 1681 hw_cons = bp->hw_tx_cons =
1682 sblk->status_tx_quick_consumer_index0; 1682 sblk->status_tx_quick_consumer_index0;
@@ -1824,7 +1824,7 @@ reuse_rx:
1824 if ((len > (bp->dev->mtu + ETH_HLEN)) && 1824 if ((len > (bp->dev->mtu + ETH_HLEN)) &&
1825 (ntohs(skb->protocol) != 0x8100)) { 1825 (ntohs(skb->protocol) != 0x8100)) {
1826 1826
1827 dev_kfree_skb_irq(skb); 1827 dev_kfree_skb(skb);
1828 goto next_rx; 1828 goto next_rx;
1829 1829
1830 } 1830 }
@@ -3643,7 +3643,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
3643 skb_shinfo(skb)->frags[j].size, 3643 skb_shinfo(skb)->frags[j].size,
3644 PCI_DMA_TODEVICE); 3644 PCI_DMA_TODEVICE);
3645 } 3645 }
3646 dev_kfree_skb_any(skb); 3646 dev_kfree_skb(skb);
3647 i += j + 1; 3647 i += j + 1;
3648 } 3648 }
3649 3649
@@ -3669,7 +3669,7 @@ bnx2_free_rx_skbs(struct bnx2 *bp)
3669 3669
3670 rx_buf->skb = NULL; 3670 rx_buf->skb = NULL;
3671 3671
3672 dev_kfree_skb_any(skb); 3672 dev_kfree_skb(skb);
3673 } 3673 }
3674} 3674}
3675 3675
@@ -3999,7 +3999,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
3999 udelay(5); 3999 udelay(5);
4000 4000
4001 pci_unmap_single(bp->pdev, map, pkt_size, PCI_DMA_TODEVICE); 4001 pci_unmap_single(bp->pdev, map, pkt_size, PCI_DMA_TODEVICE);
4002 dev_kfree_skb_irq(skb); 4002 dev_kfree_skb(skb);
4003 4003
4004 if (bp->status_blk->status_tx_quick_consumer_index0 != bp->tx_prod) { 4004 if (bp->status_blk->status_tx_quick_consumer_index0 != bp->tx_prod) {
4005 goto loopback_test_done; 4005 goto loopback_test_done;
@@ -4541,7 +4541,7 @@ bnx2_close(struct net_device *dev)
4541 bnx2_netif_stop(bp); 4541 bnx2_netif_stop(bp);
4542 del_timer_sync(&bp->timer); 4542 del_timer_sync(&bp->timer);
4543 if (bp->flags & NO_WOL_FLAG) 4543 if (bp->flags & NO_WOL_FLAG)
4544 reset_code = BNX2_DRV_MSG_CODE_UNLOAD; 4544 reset_code = BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN;
4545 else if (bp->wol) 4545 else if (bp->wol)
4546 reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL; 4546 reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL;
4547 else 4547 else
@@ -5128,6 +5128,16 @@ bnx2_set_rx_csum(struct net_device *dev, u32 data)
5128 return 0; 5128 return 0;
5129} 5129}
5130 5130
5131static int
5132bnx2_set_tso(struct net_device *dev, u32 data)
5133{
5134 if (data)
5135 dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN;
5136 else
5137 dev->features &= ~(NETIF_F_TSO | NETIF_F_TSO_ECN);
5138 return 0;
5139}
5140
5131#define BNX2_NUM_STATS 46 5141#define BNX2_NUM_STATS 46
5132 5142
5133static struct { 5143static struct {
@@ -5445,7 +5455,7 @@ static struct ethtool_ops bnx2_ethtool_ops = {
5445 .set_sg = ethtool_op_set_sg, 5455 .set_sg = ethtool_op_set_sg,
5446#ifdef BCM_TSO 5456#ifdef BCM_TSO
5447 .get_tso = ethtool_op_get_tso, 5457 .get_tso = ethtool_op_get_tso,
5448 .set_tso = ethtool_op_set_tso, 5458 .set_tso = bnx2_set_tso,
5449#endif 5459#endif
5450 .self_test_count = bnx2_self_test_count, 5460 .self_test_count = bnx2_self_test_count,
5451 .self_test = bnx2_self_test, 5461 .self_test = bnx2_self_test,
@@ -5926,7 +5936,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
5926 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 5936 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
5927#endif 5937#endif
5928#ifdef BCM_TSO 5938#ifdef BCM_TSO
5929 dev->features |= NETIF_F_TSO; 5939 dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN;
5930#endif 5940#endif
5931 5941
5932 netif_carrier_off(bp->dev); 5942 netif_carrier_off(bp->dev);
@@ -5968,7 +5978,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state)
5968 netif_device_detach(dev); 5978 netif_device_detach(dev);
5969 del_timer_sync(&bp->timer); 5979 del_timer_sync(&bp->timer);
5970 if (bp->flags & NO_WOL_FLAG) 5980 if (bp->flags & NO_WOL_FLAG)
5971 reset_code = BNX2_DRV_MSG_CODE_UNLOAD; 5981 reset_code = BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN;
5972 else if (bp->wol) 5982 else if (bp->wol)
5973 reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL; 5983 reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL;
5974 else 5984 else