RDMA/hns: Remove unnecessary structure hns_roce_sqp

Special QP have no differences with normal qp in data structure, so
definition of struct hns_roce_sqp should be removed and replaced by struct
hns_roce_qp.

Link: https://lore.kernel.org/r/1572952082-6681-3-git-send-email-liweihang@hisilicon.com
Signed-off-by: Lang Cheng <chenglang@huawei.com>
Signed-off-by: Weihang Li <liweihang@hisilicon.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Lang Cheng 2019-11-05 19:07:55 +08:00 committed by Jason Gunthorpe
parent ec6adad0a1
commit 16a11e0bff
4 changed files with 5 additions and 22 deletions

View File

@ -692,10 +692,6 @@ struct hns_roce_qp {
struct hns_roce_rinl_buf rq_inl_buf; struct hns_roce_rinl_buf rq_inl_buf;
}; };
struct hns_roce_sqp {
struct hns_roce_qp hr_qp;
};
struct hns_roce_ib_iboe { struct hns_roce_ib_iboe {
spinlock_t lock; spinlock_t lock;
struct net_device *netdevs[HNS_ROCE_MAX_PORTS]; struct net_device *netdevs[HNS_ROCE_MAX_PORTS];
@ -1089,11 +1085,6 @@ static inline struct hns_roce_srq *to_hr_srq(struct ib_srq *ibsrq)
return container_of(ibsrq, struct hns_roce_srq, ibsrq); return container_of(ibsrq, struct hns_roce_srq, ibsrq);
} }
static inline struct hns_roce_sqp *hr_to_hr_sqp(struct hns_roce_qp *hr_qp)
{
return container_of(hr_qp, struct hns_roce_sqp, hr_qp);
}
static inline void hns_roce_write64_k(__le32 val[2], void __iomem *dest) static inline void hns_roce_write64_k(__le32 val[2], void __iomem *dest)
{ {
__raw_writeq(*(u64 *) val, dest); __raw_writeq(*(u64 *) val, dest);

View File

@ -3644,10 +3644,7 @@ int hns_roce_v1_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf); hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
} }
if (hr_qp->ibqp.qp_type == IB_QPT_RC) kfree(hr_qp);
kfree(hr_qp);
else
kfree(hr_to_hr_sqp(hr_qp));
return 0; return 0;
} }

View File

@ -4727,10 +4727,7 @@ static int hns_roce_v2_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
ibdev_err(&hr_dev->ib_dev, "Destroy qp 0x%06lx failed(%d)\n", ibdev_err(&hr_dev->ib_dev, "Destroy qp 0x%06lx failed(%d)\n",
hr_qp->qpn, ret); hr_qp->qpn, ret);
if (hr_qp->ibqp.qp_type == IB_QPT_GSI) kfree(hr_qp);
kfree(hr_to_hr_sqp(hr_qp));
else
kfree(hr_qp);
return 0; return 0;
} }

View File

@ -1019,7 +1019,6 @@ struct ib_qp *hns_roce_create_qp(struct ib_pd *pd,
{ {
struct hns_roce_dev *hr_dev = to_hr_dev(pd->device); struct hns_roce_dev *hr_dev = to_hr_dev(pd->device);
struct ib_device *ibdev = &hr_dev->ib_dev; struct ib_device *ibdev = &hr_dev->ib_dev;
struct hns_roce_sqp *hr_sqp;
struct hns_roce_qp *hr_qp; struct hns_roce_qp *hr_qp;
int ret; int ret;
@ -1049,11 +1048,10 @@ struct ib_qp *hns_roce_create_qp(struct ib_pd *pd,
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
} }
hr_sqp = kzalloc(sizeof(*hr_sqp), GFP_KERNEL); hr_qp = kzalloc(sizeof(*hr_qp), GFP_KERNEL);
if (!hr_sqp) if (!hr_qp)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
hr_qp = &hr_sqp->hr_qp;
hr_qp->port = init_attr->port_num - 1; hr_qp->port = init_attr->port_num - 1;
hr_qp->phy_port = hr_dev->iboe.phy_port[hr_qp->port]; hr_qp->phy_port = hr_dev->iboe.phy_port[hr_qp->port];
@ -1068,7 +1066,7 @@ struct ib_qp *hns_roce_create_qp(struct ib_pd *pd,
hr_qp->ibqp.qp_num, hr_qp); hr_qp->ibqp.qp_num, hr_qp);
if (ret) { if (ret) {
ibdev_err(ibdev, "Create GSI QP failed!\n"); ibdev_err(ibdev, "Create GSI QP failed!\n");
kfree(hr_sqp); kfree(hr_qp);
return ERR_PTR(ret); return ERR_PTR(ret);
} }