Merge tag 'v6.0' into rdma.git for-next
[linux-block.git] / drivers / infiniband / hw / erdma / erdma_verbs.c
index 699bd3f59cd340fa597b37416880d2eede547442..62be98e2b94142f916f25fc9b7b602a59554deaa 100644 (file)
@@ -9,21 +9,14 @@
 
 /* Copyright (c) 2013-2015, Mellanox Technologies. All rights reserved. */
 
-#include <linux/errno.h>
-#include <linux/pci.h>
-#include <linux/types.h>
-#include <linux/uaccess.h>
 #include <linux/vmalloc.h>
 #include <net/addrconf.h>
 #include <rdma/erdma-abi.h>
 #include <rdma/ib_umem.h>
-#include <rdma/ib_user_verbs.h>
-#include <rdma/ib_verbs.h>
 #include <rdma/uverbs_ioctl.h>
 
 #include "erdma.h"
 #include "erdma_cm.h"
-#include "erdma_hw.h"
 #include "erdma_verbs.h"
 
 static int create_qp_cmd(struct erdma_dev *dev, struct erdma_qp *qp)
@@ -102,7 +95,7 @@ static int create_qp_cmd(struct erdma_dev *dev, struct erdma_qp *qp)
                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 =
@@ -151,8 +144,7 @@ static int regmr_cmd(struct erdma_dev *dev, struct erdma_mr *mr)
        }
 
 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)
@@ -202,8 +194,7 @@ 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)
@@ -976,8 +967,7 @@ int erdma_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata)
        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;
 
@@ -1002,8 +992,7 @@ int erdma_destroy_cq(struct ib_cq *ibcq, struct ib_udata *udata)
                                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;
 
@@ -1040,8 +1029,7 @@ int erdma_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
                                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;
 
@@ -1448,6 +1436,17 @@ err_out_xa:
        return ret;
 }
 
+void erdma_set_mtu(struct erdma_dev *dev, u32 mtu)
+{
+       struct erdma_cmdq_config_mtu_req req;
+
+       erdma_cmdq_build_reqhdr(&req.hdr, CMDQ_SUBMOD_COMMON,
+                               CMDQ_OPCODE_CONF_MTU);
+       req.mtu = mtu;
+
+       erdma_post_cmd_wait(&dev->cmdq, &req, sizeof(req), NULL, NULL);
+}
+
 void erdma_port_event(struct erdma_dev *dev, enum ib_event_type reason)
 {
        struct ib_event event;