Loading net/sunrpc/xprtrdma/verbs.c +32 −4 Original line number Diff line number Diff line Loading @@ -106,6 +106,32 @@ rpcrdma_run_tasklet(unsigned long data) static DECLARE_TASKLET(rpcrdma_tasklet_g, rpcrdma_run_tasklet, 0UL); static const char * const async_event[] = { "CQ error", "QP fatal error", "QP request error", "QP access error", "communication established", "send queue drained", "path migration successful", "path mig error", "device fatal error", "port active", "port error", "LID change", "P_key change", "SM change", "SRQ error", "SRQ limit reached", "last WQE reached", "client reregister", "GID change", }; #define ASYNC_MSG(status) \ ((status) < ARRAY_SIZE(async_event) ? \ async_event[(status)] : "unknown async error") static void rpcrdma_schedule_tasklet(struct list_head *sched_list) { Loading @@ -122,8 +148,9 @@ rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context) { struct rpcrdma_ep *ep = context; dprintk("RPC: %s: QP error %X on device %s ep %p\n", __func__, event->event, event->device->name, context); pr_err("RPC: %s: %s on device %s ep %p\n", __func__, ASYNC_MSG(event->event), event->device->name, context); if (ep->rep_connected == 1) { ep->rep_connected = -EIO; ep->rep_func(ep); Loading @@ -136,8 +163,9 @@ rpcrdma_cq_async_error_upcall(struct ib_event *event, void *context) { struct rpcrdma_ep *ep = context; dprintk("RPC: %s: CQ error %X on device %s ep %p\n", __func__, event->event, event->device->name, context); pr_err("RPC: %s: %s on device %s ep %p\n", __func__, ASYNC_MSG(event->event), event->device->name, context); if (ep->rep_connected == 1) { ep->rep_connected = -EIO; ep->rep_func(ep); Loading Loading
net/sunrpc/xprtrdma/verbs.c +32 −4 Original line number Diff line number Diff line Loading @@ -106,6 +106,32 @@ rpcrdma_run_tasklet(unsigned long data) static DECLARE_TASKLET(rpcrdma_tasklet_g, rpcrdma_run_tasklet, 0UL); static const char * const async_event[] = { "CQ error", "QP fatal error", "QP request error", "QP access error", "communication established", "send queue drained", "path migration successful", "path mig error", "device fatal error", "port active", "port error", "LID change", "P_key change", "SM change", "SRQ error", "SRQ limit reached", "last WQE reached", "client reregister", "GID change", }; #define ASYNC_MSG(status) \ ((status) < ARRAY_SIZE(async_event) ? \ async_event[(status)] : "unknown async error") static void rpcrdma_schedule_tasklet(struct list_head *sched_list) { Loading @@ -122,8 +148,9 @@ rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context) { struct rpcrdma_ep *ep = context; dprintk("RPC: %s: QP error %X on device %s ep %p\n", __func__, event->event, event->device->name, context); pr_err("RPC: %s: %s on device %s ep %p\n", __func__, ASYNC_MSG(event->event), event->device->name, context); if (ep->rep_connected == 1) { ep->rep_connected = -EIO; ep->rep_func(ep); Loading @@ -136,8 +163,9 @@ rpcrdma_cq_async_error_upcall(struct ib_event *event, void *context) { struct rpcrdma_ep *ep = context; dprintk("RPC: %s: CQ error %X on device %s ep %p\n", __func__, event->event, event->device->name, context); pr_err("RPC: %s: %s on device %s ep %p\n", __func__, ASYNC_MSG(event->event), event->device->name, context); if (ep->rep_connected == 1) { ep->rep_connected = -EIO; ep->rep_func(ep); Loading