[rds-devel] [PATCH 1/3] RDS/IWARP: better error path handling.
Steve Wise
swise at opengridcomputing.com
Mon Jan 26 12:13:57 PST 2009
From: Steve Wise <swise at opengridcomputing.com>
- deal with post_send failures
- kill the connection on fatal async errors
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/infiniband/ulp/rds/iw_cm.c | 11 +++++------
drivers/infiniband/ulp/rds/iw_send.c | 2 --
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/drivers/infiniband/ulp/rds/iw_cm.c b/drivers/infiniband/ulp/rds/iw_cm.c
index d737681..f51060f 100644
--- a/drivers/infiniband/ulp/rds/iw_cm.c
+++ b/drivers/infiniband/ulp/rds/iw_cm.c
@@ -211,13 +211,11 @@ static void rds_iw_qp_event_handler(struct ib_event *event, void *data)
rdma_notify(ic->i_cm_id, IB_EVENT_COMM_EST);
break;
case IB_EVENT_QP_REQ_ERR:
- printk(KERN_ERR "Hit IB_EVENT_QP_REQ_ERR\n");
- ic->i_cm_id->qp = NULL;
- break;
+ case IB_EVENT_QP_FATAL:
default:
- printk(KERN_WARNING "RDS/IB: unhandled QP event %u "
- "on connection to %u.%u.%u.%u\n", event->event,
- NIPQUAD(conn->c_faddr));
+ rds_iw_conn_error(conn, "RDS/IW: Fatal QP Event %u - connection %u.%u.%u.%u->%u.%u.%u.%u...reconnecting\n",
+ event->event, NIPQUAD(conn->c_laddr),
+ NIPQUAD(conn->c_faddr));
break;
}
}
@@ -625,6 +623,7 @@ static int rds_iw_cm_event_handler(struct rdma_cm_id *cm_id,
break;
case RDMA_CM_EVENT_DISCONNECTED:
+ printk(KERN_WARNING "RDS/IW: DISCONNECT event - dropping connection %u.%u.%u.%u->%u.%u.%u.%u\n", NIPQUAD(conn->c_laddr), NIPQUAD(conn->c_faddr));
rds_conn_drop(conn);
break;
diff --git a/drivers/infiniband/ulp/rds/iw_send.c b/drivers/infiniband/ulp/rds/iw_send.c
index 869134d..f6d1cba 100644
--- a/drivers/infiniband/ulp/rds/iw_send.c
+++ b/drivers/infiniband/ulp/rds/iw_send.c
@@ -739,8 +739,6 @@ add_header:
ic->i_rm = prev->s_rm;
prev->s_rm = NULL;
}
- /* Finesse this later */
- BUG();
goto out;
}
More information about the rds-devel
mailing list