aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 81971ed607eb..c46252520d7a 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1,7 +1,7 @@
1/******************************************************************************* 1/*******************************************************************************
2 2
3 Intel 10 Gigabit PCI Express Linux driver 3 Intel 10 Gigabit PCI Express Linux driver
4 Copyright(c) 1999 - 2009 Intel Corporation. 4 Copyright(c) 1999 - 2010 Intel Corporation.
5 5
6 This program is free software; you can redistribute it and/or modify it 6 This program is free software; you can redistribute it and/or modify it
7 under the terms and conditions of the GNU General Public License, 7 under the terms and conditions of the GNU General Public License,
@@ -53,7 +53,7 @@ static const char ixgbe_driver_string[] =
53 53
54#define DRV_VERSION "2.0.44-k2" 54#define DRV_VERSION "2.0.44-k2"
55const char ixgbe_driver_version[] = DRV_VERSION; 55const char ixgbe_driver_version[] = DRV_VERSION;
56static char ixgbe_copyright[] = "Copyright (c) 1999-2009 Intel Corporation."; 56static char ixgbe_copyright[] = "Copyright (c) 1999-2010 Intel Corporation.";
57 57
58static const struct ixgbe_info *ixgbe_info_tbl[] = { 58static const struct ixgbe_info *ixgbe_info_tbl[] = {
59 [board_82598] = &ixgbe_82598_info, 59 [board_82598] = &ixgbe_82598_info,
@@ -5352,14 +5352,14 @@ dma_error:
5352 tx_buffer_info->dma = 0; 5352 tx_buffer_info->dma = 0;
5353 tx_buffer_info->time_stamp = 0; 5353 tx_buffer_info->time_stamp = 0;
5354 tx_buffer_info->next_to_watch = 0; 5354 tx_buffer_info->next_to_watch = 0;
5355 count--; 5355 if (count)
5356 count--;
5356 5357
5357 /* clear timestamp and dma mappings for remaining portion of packet */ 5358 /* clear timestamp and dma mappings for remaining portion of packet */
5358 while (count >= 0) { 5359 while (count--) {
5359 count--; 5360 if (i==0)
5360 i--;
5361 if (i < 0)
5362 i += tx_ring->count; 5361 i += tx_ring->count;
5362 i--;
5363 tx_buffer_info = &tx_ring->tx_buffer_info[i]; 5363 tx_buffer_info = &tx_ring->tx_buffer_info[i];
5364 ixgbe_unmap_and_free_tx_resource(adapter, tx_buffer_info); 5364 ixgbe_unmap_and_free_tx_resource(adapter, tx_buffer_info);
5365 } 5365 }
@@ -5762,6 +5762,10 @@ static void ixgbe_netpoll(struct net_device *netdev)
5762 struct ixgbe_adapter *adapter = netdev_priv(netdev); 5762 struct ixgbe_adapter *adapter = netdev_priv(netdev);
5763 int i; 5763 int i;
5764 5764
5765 /* if interface is down do nothing */
5766 if (test_bit(__IXGBE_DOWN, &adapter->state))
5767 return;
5768
5765 adapter->flags |= IXGBE_FLAG_IN_NETPOLL; 5769 adapter->flags |= IXGBE_FLAG_IN_NETPOLL;
5766 if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) { 5770 if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
5767 int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS; 5771 int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS;