Skip to contentSkip to conversation

svcrdma: signedness bug in xprt_rdma_bc_send_request()

PATCH New Dan Carpenter 1 participant 1 message Jan 5, 2016

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 svcrdma: signedness bug in xprt_rdma_bc_send_request()

The "len" variable was unsigned so the error handling didn't work. Also "len" was a misleading name because it's either a negative error code or it's zero. It's never actually a length. I've renamed it to "ret".

Fixes eb57be60eca9 ('svcrdma: Add class for RDMA backwards direction transport')
net/sunrpc/xprtrdma/svc_rdma_backchannel.c +5 -5
index 417cec1..deff06a 100644
@@ -240,7 +240,7 @@ xprt_rdma_bc_send_request(struct rpc_task *task)
 	struct rpc_rqst *rqst = task->tk_rqstp;
 	struct svc_xprt *sxprt = rqst->rq_xprt->bc_xprt;
 	struct svcxprt_rdma *rdma;
-	u32 len;
+	int ret;
 
 	dprintk("svcrdma: sending bc call with xid: %08x\n",
 		be32_to_cpu(rqst->rq_xid));
@@ -252,15 +252,15 @@ xprt_rdma_bc_send_request(struct rpc_task *task)
 		rpc_wake_up_queued_task(&sxprt->xpt_bc_pending, task);
 	}
 
-	len = -ENOTCONN;
+	ret = -ENOTCONN;
 	rdma = container_of(sxprt, struct svcxprt_rdma, sc_xprt);
 	if (!test_bit(XPT_DEAD, &sxprt->xpt_flags))
-		len = rpcrdma_bc_send_request(rdma, rqst);
+		ret = rpcrdma_bc_send_request(rdma, rqst);
 
 	mutex_unlock(&sxprt->xpt_mutex);
 
-	if (len < 0)
-		return len;
+	if (ret < 0)
+		return ret;
 	return 0;
 }