diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2006-03-03 03:17:16 +0100 |
---|---|---|
committer | root <root@jk-desktop.jf.intel.com> | 2006-03-03 03:17:16 +0100 |
commit | 0989aa431636ffb347314f0e2f367fdd16d7a57f (patch) | |
tree | b5890adc27313a97abe920fdfabf3f8e32b4bc7f /drivers/net/e1000/e1000_ethtool.c | |
parent | e1000: Fix dead counters (diff) | |
download | linux-0989aa431636ffb347314f0e2f367fdd16d7a57f.tar.xz linux-0989aa431636ffb347314f0e2f367fdd16d7a57f.zip |
e1000: Fix lock up while setting ring parameters
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: John Ronciak <john.ronciak@intel.com>
Diffstat (limited to 'drivers/net/e1000/e1000_ethtool.c')
-rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 9c77413faf0c..f7e81e96a191 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -634,6 +634,9 @@ e1000_set_ringparam(struct net_device *netdev, struct e1000_rx_ring *rxdr, *rx_old, *rx_new; int i, err, tx_ring_size, rx_ring_size; + if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) + return -EINVAL; + tx_ring_size = sizeof(struct e1000_tx_ring) * adapter->num_tx_queues; rx_ring_size = sizeof(struct e1000_rx_ring) * adapter->num_rx_queues; @@ -661,9 +664,6 @@ e1000_set_ringparam(struct net_device *netdev, txdr = adapter->tx_ring; rxdr = adapter->rx_ring; - if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) - return -EINVAL; - rxdr->count = max(ring->rx_pending,(uint32_t)E1000_MIN_RXD); rxdr->count = min(rxdr->count,(uint32_t)(mac_type < e1000_82544 ? E1000_MAX_RXD : E1000_MAX_82544_RXD)); |