drivers/infiniband/ulp/srpt/ib_srpt.c: fix build with gcc-4.4.4
authorAndrew Morton <akpm@linux-foundation.org>
Tue, 13 Mar 2018 22:06:45 +0000 (15:06 -0700)
committerDoug Ledford <dledford@redhat.com>
Wed, 14 Mar 2018 22:14:08 +0000 (18:14 -0400)
gcc-4.4.4 has issues with initialization of anonymous unions:

drivers/infiniband/ulp/srpt/ib_srpt.c: In function 'srpt_zerolength_write':
drivers/infiniband/ulp/srpt/ib_srpt.c:854: error: unknown field 'wr_cqe' specified in initializer
drivers/infiniband/ulp/srpt/ib_srpt.c:854: warning: initialization makes integer from pointer without a cast

Work aound this.

Fixes: 2a78cb4db487 ("IB/srpt: Fix an out-of-bounds stack access in srpt_zerolength_write()")
Cc: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Jason Gunthorpe <jgg@mellanox.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/srpt/ib_srpt.c

index 8956d4621273faa5159045867adc081ee186ec3c..dfec0e1fac29e9f4e85d17dd4cd66347ec5013a3 100644 (file)
@@ -850,8 +850,9 @@ static int srpt_zerolength_write(struct srpt_rdma_ch *ch)
        struct ib_send_wr *bad_wr;
        struct ib_rdma_wr wr = {
                .wr = {
+                       .next           = NULL,
+                       { .wr_cqe       = &ch->zw_cqe, },
                        .opcode         = IB_WR_RDMA_WRITE,
-                       .wr_cqe         = &ch->zw_cqe,
                        .send_flags     = IB_SEND_SIGNALED,
                }
        };