From 36fe0ab1b3c046ec1d3bc92b12224de60387b230 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Fri, 12 Feb 2010 06:58:05 +0000 Subject: [PATCH] --- yaml --- r: 184038 b: refs/heads/master c: f2b31cb3ae491f9e82443cf25cc5a9ebdbc63619 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/sky2.c | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 62102de824c1..c7f5010c4853 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea0f71e59c20ea1e413cacfc971e051b3d6c6f64 +refs/heads/master: f2b31cb3ae491f9e82443cf25cc5a9ebdbc63619 diff --git a/trunk/drivers/net/sky2.c b/trunk/drivers/net/sky2.c index 1f0180f1f0c3..61a0451957b0 100644 --- a/trunk/drivers/net/sky2.c +++ b/trunk/drivers/net/sky2.c @@ -1908,21 +1908,12 @@ static void sky2_tx_reset(struct sky2_hw *hw, unsigned port) sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_SET); } -/* Network shutdown */ -static int sky2_down(struct net_device *dev) +static void sky2_hw_down(struct sky2_port *sky2) { - struct sky2_port *sky2 = netdev_priv(dev); struct sky2_hw *hw = sky2->hw; unsigned port = sky2->port; - u16 ctrl; u32 imask; - - /* Never really got started! */ - if (!sky2->tx_le) - return 0; - - if (netif_msg_ifdown(sky2)) - printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); + u16 ctrl; /* Force flow control off */ sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); @@ -1972,6 +1963,21 @@ static int sky2_down(struct net_device *dev) /* Free any pending frames stuck in HW queue */ sky2_tx_complete(sky2, sky2->tx_prod); +} + +/* Network shutdown */ +static int sky2_down(struct net_device *dev) +{ + struct sky2_port *sky2 = netdev_priv(dev); + + /* Never really got started! */ + if (!sky2->tx_le) + return 0; + + if (netif_msg_ifdown(sky2)) + printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); + + sky2_hw_down(sky2); sky2_free_buffers(sky2);