diff options
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r-- | drivers/net/skge.c | 5 |
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; |