Workarounds for gcc issues with initializers and anon unions was first introduced in commit e44ac588cd61 ("drivers/block/nvme-core.c: fix build with gcc-4.4.4").
The gcc bug in question has been fixed since gcc 4.6.0: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676 The minimum gcc version for building the kernel has been 4.6.0 since commit cafa0010cd51 ("Raise the minimum required gcc version to 4.6"), and has since been updated to gcc 4.8.0 in commit 5429ef62bcf3 ("compiler/gcc: Raise minimum GCC version for kernel builds to 4.8"). For that reason, it should now be safe to remove these workarounds and make the code look like it did before commit e44ac588cd61 ("drivers/block/nvme-core.c: fix build with gcc-4.4.4") was introduced. Signed-off-by: Niklas Cassel <niklas.cas...@wdc.com> --- drivers/nvme/target/rdma.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/nvme/target/rdma.c b/drivers/nvme/target/rdma.c index 6731e0349480..238bc55de561 100644 --- a/drivers/nvme/target/rdma.c +++ b/drivers/nvme/target/rdma.c @@ -1535,19 +1535,20 @@ static int nvmet_rdma_cm_accept(struct rdma_cm_id *cm_id, struct nvmet_rdma_queue *queue, struct rdma_conn_param *p) { - struct rdma_conn_param param = { }; - struct nvme_rdma_cm_rep priv = { }; + struct nvme_rdma_cm_rep priv = { + .recfmt = cpu_to_le16(NVME_RDMA_CM_FMT_1_0), + .crqsize = cpu_to_le16(queue->recv_queue_size), + }; + struct rdma_conn_param param = { + .rnr_retry_count = 7, + .flow_control = 1, + .initiator_depth = min_t(u8, p->initiator_depth, + queue->dev->device->attrs.max_qp_init_rd_atom), + .private_data = &priv, + .private_data_len = sizeof(priv), + }; int ret = -ENOMEM; - param.rnr_retry_count = 7; - param.flow_control = 1; - param.initiator_depth = min_t(u8, p->initiator_depth, - queue->dev->device->attrs.max_qp_init_rd_atom); - param.private_data = &priv; - param.private_data_len = sizeof(priv); - priv.recfmt = cpu_to_le16(NVME_RDMA_CM_FMT_1_0); - priv.crqsize = cpu_to_le16(queue->recv_queue_size); - ret = rdma_accept(cm_id, ¶m); if (ret) pr_err("rdma_accept failed (error code = %d)\n", ret); -- 2.26.2