diff options
author | Leonid Arsh <leonida@voltaire.com> | 2006-03-22 12:54:24 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-03-24 18:47:29 -0500 |
commit | 4e37b956161c3a3b160972c11c55f07b38b9830c (patch) | |
tree | d3e18ea58a3375afd2920062ad454b5e3f7371ae | |
parent | b0b3a8e1939d18c9bd4caca0b4b859b118a4167e (diff) |
IPoIB: Fix network interface "RUNNING" status
With the current IPoIB driver, the status of network interfaces stays
"RUNNING" even if the link goes down (for example because a cable is
unplugged). Fix this by flushing the IPoIB interface when the link
goes down.
Signed-off-by: Leonid Arsh <leonida@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c index 18d2f53ec34c..a35b798b8128 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c | |||
@@ -251,10 +251,11 @@ void ipoib_event(struct ib_event_handler *handler, | |||
251 | struct ipoib_dev_priv *priv = | 251 | struct ipoib_dev_priv *priv = |
252 | container_of(handler, struct ipoib_dev_priv, event_handler); | 252 | container_of(handler, struct ipoib_dev_priv, event_handler); |
253 | 253 | ||
254 | if (record->event == IB_EVENT_PORT_ACTIVE || | 254 | if (record->event == IB_EVENT_PORT_ERR || |
255 | record->event == IB_EVENT_PORT_ACTIVE || | ||
255 | record->event == IB_EVENT_LID_CHANGE || | 256 | record->event == IB_EVENT_LID_CHANGE || |
256 | record->event == IB_EVENT_SM_CHANGE) { | 257 | record->event == IB_EVENT_SM_CHANGE) { |
257 | ipoib_dbg(priv, "Port active event\n"); | 258 | ipoib_dbg(priv, "Port state change event\n"); |
258 | queue_work(ipoib_workqueue, &priv->flush_task); | 259 | queue_work(ipoib_workqueue, &priv->flush_task); |
259 | } | 260 | } |
260 | } | 261 | } |