summaryrefslogtreecommitdiffstats
path: root/drivers/net/sunvnet.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-07-18 09:07:39 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-18 10:20:18 +0200
commitd762acdbd3b2bd9a714ace47d7b0c76133d7b295 (patch)
tree10fcc8b02c469c4bef15f60fe717d0ed54621288 /drivers/net/sunvnet.c
parent[SPARC64]: Handle reset events in vio_link_state_change(). (diff)
downloadlinux-d762acdbd3b2bd9a714ace47d7b0c76133d7b295.tar.xz
linux-d762acdbd3b2bd9a714ace47d7b0c76133d7b295.zip
[SPARC64]: Fix reset handling in VNET driver.
In vnet_event(), if the channel was reset, try to get the link going again by invoking vio_port_up() after dropping the lock. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sunvnet.c')
-rw-r--r--drivers/net/sunvnet.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/sunvnet.c b/drivers/net/sunvnet.c
index b69f55226bd6..b801e3b3a11a 100644
--- a/drivers/net/sunvnet.c
+++ b/drivers/net/sunvnet.c
@@ -498,6 +498,8 @@ static void vnet_event(void *arg, int event)
vio_link_state_change(vio, event);
spin_unlock_irqrestore(&vio->lock, flags);
+ if (event == LDC_EVENT_RESET)
+ vio_port_up(vio);
return;
}