4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrew Morton <[email protected]>

commit 6ee687735e745eafae9e6b93d1ea70bc52e7ad07 upstream.

gcc-4.4.4 has issues with initialization of anonymous unions.

drivers/infiniband/core/verbs.c: In function '__ib_drain_sq':
drivers/infiniband/core/verbs.c:2204: error: unknown field 'wr_cqe' specified 
in initializer
drivers/infiniband/core/verbs.c:2204: warning: initialization makes integer 
from pointer without a cast

Work around this.

Fixes: a1ae7d0345edd5 ("RDMA/core: Avoid that ib_drain_qp() triggers an 
out-of-bounds stack access")
Cc: Bart Van Assche <[email protected]>
Cc: Steve Wise <[email protected]>
Cc: Sagi Grimberg <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/infiniband/core/verbs.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -2197,8 +2197,9 @@ static void __ib_drain_sq(struct ib_qp *
        struct ib_send_wr *bad_swr;
        struct ib_rdma_wr swr = {
                .wr = {
+                       .next = NULL,
+                       { .wr_cqe       = &sdrain.cqe, },
                        .opcode = IB_WR_RDMA_WRITE,
-                       .wr_cqe = &sdrain.cqe,
                },
        };
        int ret;


Reply via email to