void erdma_cmdq_destroy(struct erdma_dev *dev);
 
 void erdma_cmdq_build_reqhdr(u64 *hdr, u32 mod, u32 op);
-int erdma_post_cmd_wait(struct erdma_cmdq *cmdq, u64 *req, u32 req_size,
+int erdma_post_cmd_wait(struct erdma_cmdq *cmdq, void *req, u32 req_size,
                        u64 *resp0, u64 *resp1);
 void erdma_cmdq_completion_handler(struct erdma_cmdq *cmdq);
 
 
               FIELD_PREP(ERDMA_CMD_HDR_OPCODE_MASK, op);
 }
 
-int erdma_post_cmd_wait(struct erdma_cmdq *cmdq, u64 *req, u32 req_size,
+int erdma_post_cmd_wait(struct erdma_cmdq *cmdq, void *req, u32 req_size,
                        u64 *resp0, u64 *resp1)
 {
        struct erdma_comp_wait *comp_wait;
 
        req.db_dma_addr_l = lower_32_bits(db_info_dma_addr);
        req.db_dma_addr_h = upper_32_bits(db_info_dma_addr);
 
-       return erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req,
-                                  sizeof(struct erdma_cmdq_create_eq_req),
-                                  NULL, NULL);
+       return erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
 }
 
 static int erdma_ceq_init_one(struct erdma_dev *dev, u16 ceqn)
        req.qtype = ERDMA_EQ_TYPE_CEQ;
        req.vector_idx = ceqn + 1;
 
-       err = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                 NULL);
+       err = erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
        if (err)
                return;
 
 
                req.send_nxt += MPA_DEFAULT_HDR_LEN + qp->attrs.pd_len;
        req.recv_nxt = tp->rcv_nxt;
 
-       return erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                  NULL);
+       return erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
 }
 
 static int erdma_modify_qp_state_to_stop(struct erdma_qp *qp,
        req.cfg = FIELD_PREP(ERDMA_CMD_MODIFY_QP_STATE_MASK, attrs->state) |
                  FIELD_PREP(ERDMA_CMD_MODIFY_QP_QPN_MASK, QP_ID(qp));
 
-       return erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                  NULL);
+       return erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
 }
 
 int erdma_modify_qp_internal(struct erdma_qp *qp, struct erdma_qp_attrs *attrs,
 
                req.rq_db_info_dma_addr = user_qp->rq_db_info_dma_addr;
        }
 
-       err = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), &resp0,
+       err = erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), &resp0,
                                  &resp1);
        if (!err)
                qp->attrs.cookie =
        }
 
 post_cmd:
-       return erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                  NULL);
+       return erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
 }
 
 static int create_cq_cmd(struct erdma_dev *dev, struct erdma_cq *cq)
                req.cq_db_info_addr = cq->user_cq.db_info_dma_addr;
        }
 
-       return erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                  NULL);
+       return erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
 }
 
 static int erdma_alloc_idx(struct erdma_resource_cb *res_cb)
        req.cfg = FIELD_PREP(ERDMA_CMD_MR_MPT_IDX_MASK, ibmr->lkey >> 8) |
                  FIELD_PREP(ERDMA_CMD_MR_KEY_MASK, ibmr->lkey & 0xFF);
 
-       ret = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                 NULL);
+       ret = erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
        if (ret)
                return ret;
 
                                CMDQ_OPCODE_DESTROY_CQ);
        req.cqn = cq->cqn;
 
-       err = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                 NULL);
+       err = erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
        if (err)
                return err;
 
                                CMDQ_OPCODE_DESTROY_QP);
        req.qpn = QP_ID(qp);
 
-       err = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), NULL,
-                                 NULL);
+       err = erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
        if (err)
                return err;