aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/skge.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 96b661b1f6c0..9ff54ea713cd 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -397,6 +397,7 @@ static int skge_set_ring_param(struct net_device *dev,
397 struct ethtool_ringparam *p) 397 struct ethtool_ringparam *p)
398{ 398{
399 struct skge_port *skge = netdev_priv(dev); 399 struct skge_port *skge = netdev_priv(dev);
400 int err;
400 401
401 if (p->rx_pending == 0 || p->rx_pending > MAX_RX_RING_SIZE || 402 if (p->rx_pending == 0 || p->rx_pending > MAX_RX_RING_SIZE ||
402 p->tx_pending == 0 || p->tx_pending > MAX_TX_RING_SIZE) 403 p->tx_pending == 0 || p->tx_pending > MAX_TX_RING_SIZE)
@@ -407,7 +408,9 @@ static int skge_set_ring_param(struct net_device *dev,
407 408
408 if (netif_running(dev)) { 409 if (netif_running(dev)) {
409 skge_down(dev); 410 skge_down(dev);
410 skge_up(dev); 411 err = skge_up(dev);
412 if (err)
413 dev_close(dev);
411 } 414 }
412 415
413 return 0; 416 return 0;