On Thu, Jul 26, 2018 at 05:10:13AM +0000, Bart Van Assche wrote:
> On Wed, 2018-07-25 at 21:05 -0600, Jason Gunthorpe wrote:
> > On Thu, Jul 26, 2018 at 10:55:53AM +1000, Stephen Rothwell wrote:
> > > Hi all,
> > > 
> > > After merging the rdma tree, today's linux-next build (powerpc
> > > ppc64_defconfig) produced this warning:
> > > 
> > > net/sunrpc/xprtrdma/svc_rdma_rw.c: In function 'svc_rdma_post_chunk_ctxt':
> > > net/sunrpc/xprtrdma/svc_rdma_rw.c:350:5: warning: 'bad_wr' may be used 
> > > uninitialized in this function [-Wmaybe-uninitialized]
> > >   if (bad_wr != first_wr)
> > >      ^
> > 
> > Huh. I'm quite surprised 0-day build service didn't warn on this.
> > 
> > > Introduced by commit
> > > 
> > >   ed288d74a9e5 ("net/xprtrdma: Simplify ib_post_(send|recv|srq_recv)() 
> > > calls")
> > > 
> > > This is an actual problem.
> > 
> > Yes, for sure. Bart?
> 
> Thanks Stephen for having reported this. I propose to revert the changes in
> net/sunrpc/xprtrdma/svc_rdma_rw.c. Jason, do you want me to submit the below
> as a formal patch?

I applied the below.. Please let me know if there is an error.

Thanks,
Jason

commit 5d85a822fae2b484f26ddb09815063a88962a0cb
Author: Jason Gunthorpe <j...@mellanox.com>
Date:   Thu Jul 26 11:36:50 2018 -0600

    net/xprtrdma: Restore needed argument to ib_post_send
    
    The call in svc_rdma_post_chunk_ctxt() does actually use bad_wr.
    
    Fixes: ed288d74a9e5 ("net/xprtrdma: Simplify ib_post_(send|recv|srq_recv)() 
calls")
    Reported-by: Stephen Rothwell <s...@canb.auug.org.au>
    Signed-off-by: Bart Van Assche <bart.vanass...@wdc.com>
    Signed-off-by: Jason Gunthorpe <j...@mellanox.com>

diff --git a/net/sunrpc/xprtrdma/svc_rdma_rw.c 
b/net/sunrpc/xprtrdma/svc_rdma_rw.c
index 80975427f5235f..ce3ea841970483 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_rw.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_rw.c
@@ -329,7 +329,7 @@ static int svc_rdma_post_chunk_ctxt(struct 
svc_rdma_chunk_ctxt *cc)
        do {
                if (atomic_sub_return(cc->cc_sqecount,
                                      &rdma->sc_sq_avail) > 0) {
-                       ret = ib_post_send(rdma->sc_qp, first_wr, NULL);
+                       ret = ib_post_send(rdma->sc_qp, first_wr, &bad_wr);
                        trace_svcrdma_post_rw(&cc->cc_cqe,
                                              cc->cc_sqecount, ret);
                        if (ret)

Reply via email to