aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/irdma/irdma_verbs.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/irdma/irdma_verbs.c')
-rw-r--r--sys/dev/irdma/irdma_verbs.c132
1 files changed, 1 insertions, 131 deletions
diff --git a/sys/dev/irdma/irdma_verbs.c b/sys/dev/irdma/irdma_verbs.c
index dbd20ea72d00..9daadf0706e5 100644
--- a/sys/dev/irdma/irdma_verbs.c
+++ b/sys/dev/irdma/irdma_verbs.c
@@ -107,49 +107,10 @@ irdma_mmap_legacy(struct irdma_ucontext *ucontext,
pfn = ((uintptr_t)ucontext->iwdev->rf->sc_dev.hw_regs[IRDMA_DB_ADDR_OFFSET] +
pci_resource_start(ucontext->iwdev->rf->pcidev, 0)) >> PAGE_SHIFT;
-#if __FreeBSD_version >= 1400026
- return rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, PAGE_SIZE,
- pgprot_noncached(vma->vm_page_prot), NULL);
-#else
return rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, PAGE_SIZE,
pgprot_noncached(vma->vm_page_prot));
-#endif
}
-#if __FreeBSD_version >= 1400026
-static void
-irdma_mmap_free(struct rdma_user_mmap_entry *rdma_entry)
-{
- struct irdma_user_mmap_entry *entry = to_irdma_mmap_entry(rdma_entry);
-
- kfree(entry);
-}
-
-struct rdma_user_mmap_entry *
-irdma_user_mmap_entry_insert(struct irdma_ucontext *ucontext, u64 bar_offset,
- enum irdma_mmap_flag mmap_flag, u64 *mmap_offset)
-{
- struct irdma_user_mmap_entry *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
- int ret;
-
- if (!entry)
- return NULL;
-
- entry->bar_offset = bar_offset;
- entry->mmap_flag = mmap_flag;
-
- ret = rdma_user_mmap_entry_insert(&ucontext->ibucontext,
- &entry->rdma_entry, PAGE_SIZE);
- if (ret) {
- kfree(entry);
- return NULL;
- }
- *mmap_offset = rdma_user_mmap_get_offset(&entry->rdma_entry);
-
- return &entry->rdma_entry;
-}
-
-#else
static inline bool
find_key_in_mmap_tbl(struct irdma_ucontext *ucontext, u64 key)
{
@@ -245,7 +206,6 @@ irdma_user_mmap_entry_del_hash(struct irdma_user_mmap_entry *entry)
kfree(entry);
}
-#endif
/**
* irdma_mmap - user memory map
* @context: context created during alloc
@@ -254,9 +214,6 @@ irdma_user_mmap_entry_del_hash(struct irdma_user_mmap_entry *entry)
static int
irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
{
-#if __FreeBSD_version >= 1400026
- struct rdma_user_mmap_entry *rdma_entry;
-#endif
struct irdma_user_mmap_entry *entry;
struct irdma_ucontext *ucontext;
u64 pfn;
@@ -268,17 +225,6 @@ irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
if (ucontext->legacy_mode)
return irdma_mmap_legacy(ucontext, vma);
-#if __FreeBSD_version >= 1400026
- rdma_entry = rdma_user_mmap_entry_get(&ucontext->ibucontext, vma);
- if (!rdma_entry) {
- irdma_debug(iwdev_to_idev(ucontext->iwdev), IRDMA_DEBUG_VERBS,
- "pgoff[0x%lx] does not have valid entry\n",
- vma->vm_pgoff);
- return -EINVAL;
- }
-
- entry = to_irdma_mmap_entry(rdma_entry);
-#else
entry = irdma_find_user_mmap_entry(ucontext, vma);
if (!entry) {
irdma_debug(iwdev_to_idev(ucontext->iwdev), IRDMA_DEBUG_VERBS,
@@ -286,7 +232,6 @@ irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
vma->vm_pgoff);
return -EINVAL;
}
-#endif
irdma_debug(iwdev_to_idev(ucontext->iwdev), IRDMA_DEBUG_VERBS,
"bar_offset [0x%lx] mmap_flag [%d]\n", entry->bar_offset,
entry->mmap_flag);
@@ -296,24 +241,12 @@ irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
switch (entry->mmap_flag) {
case IRDMA_MMAP_IO_NC:
-#if __FreeBSD_version >= 1400026
- ret = rdma_user_mmap_io(context, vma, pfn, PAGE_SIZE,
- pgprot_noncached(vma->vm_page_prot),
- rdma_entry);
-#else
ret = rdma_user_mmap_io(context, vma, pfn, PAGE_SIZE,
pgprot_noncached(vma->vm_page_prot));
-#endif
break;
case IRDMA_MMAP_IO_WC:
-#if __FreeBSD_version >= 1400026
- ret = rdma_user_mmap_io(context, vma, pfn, PAGE_SIZE,
- pgprot_writecombine(vma->vm_page_prot),
- rdma_entry);
-#else
ret = rdma_user_mmap_io(context, vma, pfn, PAGE_SIZE,
pgprot_writecombine(vma->vm_page_prot));
-#endif
break;
default:
ret = -EINVAL;
@@ -323,9 +256,6 @@ irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
irdma_debug(iwdev_to_idev(ucontext->iwdev), IRDMA_DEBUG_VERBS,
"bar_offset [0x%lx] mmap_flag[%d] err[%d]\n",
entry->bar_offset, entry->mmap_flag, ret);
-#if __FreeBSD_version >= 1400026
- rdma_user_mmap_entry_put(rdma_entry);
-#endif
return ret;
}
@@ -427,19 +357,11 @@ void
irdma_remove_push_mmap_entries(struct irdma_qp *iwqp)
{
if (iwqp->push_db_mmap_entry) {
-#if __FreeBSD_version >= 1400026
- rdma_user_mmap_entry_remove(iwqp->push_db_mmap_entry);
-#else
irdma_user_mmap_entry_del_hash(iwqp->push_db_mmap_entry);
-#endif
iwqp->push_db_mmap_entry = NULL;
}
if (iwqp->push_wqe_mmap_entry) {
-#if __FreeBSD_version >= 1400026
- rdma_user_mmap_entry_remove(iwqp->push_wqe_mmap_entry);
-#else
irdma_user_mmap_entry_del_hash(iwqp->push_wqe_mmap_entry);
-#endif
iwqp->push_wqe_mmap_entry = NULL;
}
}
@@ -457,34 +379,18 @@ irdma_setup_push_mmap_entries(struct irdma_ucontext *ucontext,
bar_off = irdma_compute_push_wqe_offset(iwdev, iwqp->sc_qp.push_idx);
-#if __FreeBSD_version >= 1400026
- iwqp->push_wqe_mmap_entry = irdma_user_mmap_entry_insert(ucontext,
- bar_off, IRDMA_MMAP_IO_WC,
- push_wqe_mmap_key);
-#else
iwqp->push_wqe_mmap_entry = irdma_user_mmap_entry_add_hash(ucontext, bar_off,
IRDMA_MMAP_IO_WC, push_wqe_mmap_key);
-#endif
if (!iwqp->push_wqe_mmap_entry)
return -ENOMEM;
/* push doorbell page */
bar_off += IRDMA_HW_PAGE_SIZE;
-#if __FreeBSD_version >= 1400026
- iwqp->push_db_mmap_entry = irdma_user_mmap_entry_insert(ucontext,
- bar_off, IRDMA_MMAP_IO_NC,
- push_db_mmap_key);
-#else
iwqp->push_db_mmap_entry = irdma_user_mmap_entry_add_hash(ucontext, bar_off,
IRDMA_MMAP_IO_NC, push_db_mmap_key);
-#endif
if (!iwqp->push_db_mmap_entry) {
-#if __FreeBSD_version >= 1400026
- rdma_user_mmap_entry_remove(iwqp->push_wqe_mmap_entry);
-#else
irdma_user_mmap_entry_del_hash(iwqp->push_wqe_mmap_entry);
-#endif
return -ENOMEM;
}
@@ -548,11 +454,8 @@ irdma_setup_umode_qp(struct ib_udata *udata,
iwqp->ctx_info.qp_compl_ctx = req.user_compl_ctx;
iwqp->user_mode = 1;
if (req.user_wqe_bufs) {
-#if __FreeBSD_version >= 1400026
- struct irdma_ucontext *ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
struct irdma_ucontext *ucontext = to_ucontext(iwqp->iwpd->ibpd.uobject->context);
-#endif
+
info->qp_uk_init_info.legacy_mode = ucontext->legacy_mode;
spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
iwqp->iwpbl = irdma_get_pbl((unsigned long)req.user_wqe_bufs,
@@ -1242,11 +1145,7 @@ irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr,
if (udata && udata->outlen && dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_2) {
struct irdma_ucontext *ucontext;
-#if __FreeBSD_version >= 1400026
- ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
ucontext = to_ucontext(ibqp->uobject->context);
-#endif
if (iwqp->sc_qp.push_idx != IRDMA_INVALID_PUSH_PAGE_INDEX &&
!iwqp->push_wqe_mmap_entry &&
!irdma_setup_push_mmap_entries(ucontext, iwqp,
@@ -1492,11 +1391,7 @@ irdma_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_2) {
struct irdma_ucontext *ucontext;
-#if __FreeBSD_version >= 1400026
- ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
ucontext = to_ucontext(ibqp->uobject->context);
-#endif
if (iwqp->sc_qp.push_idx != IRDMA_INVALID_PUSH_PAGE_INDEX &&
!iwqp->push_wqe_mmap_entry &&
!irdma_setup_push_mmap_entries(ucontext, iwqp,
@@ -1635,11 +1530,7 @@ irdma_resize_cq(struct ib_cq *ibcq, int entries,
if (udata) {
struct irdma_resize_cq_req req = {};
struct irdma_ucontext *ucontext =
-#if __FreeBSD_version >= 1400026
- rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
to_ucontext(ibcq->uobject->context);
-#endif
/* CQ resize not supported with legacy GEN_1 libi40iw */
if (ucontext->legacy_mode)
@@ -2291,11 +2182,7 @@ irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
if (err)
goto error;
-#if __FreeBSD_version >= 1400026
- ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
ucontext = to_ucontext(pd->uobject->context);
-#endif
spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
list_add_tail(&iwpbl->list, &ucontext->qp_reg_mem_list);
iwpbl->on_list = true;
@@ -2315,11 +2202,7 @@ irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
if (err)
goto error;
-#if __FreeBSD_version >= 1400026
- ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext, ibucontext);
-#else
ucontext = to_ucontext(pd->uobject->context);
-#endif
spin_lock_irqsave(&ucontext->cq_reg_mem_list_lock, flags);
list_add_tail(&iwpbl->list, &ucontext->cq_reg_mem_list);
iwpbl->on_list = true;
@@ -3531,16 +3414,6 @@ irdma_set_device_ops(struct ib_device *ibdev)
{
struct ib_device *dev_ops = ibdev;
-#if __FreeBSD_version >= 1400000
- dev_ops->ops.driver_id = RDMA_DRIVER_I40IW;
- dev_ops->ops.size_ib_ah = IRDMA_SET_RDMA_OBJ_SIZE(ib_ah, irdma_ah, ibah);
- dev_ops->ops.size_ib_cq = IRDMA_SET_RDMA_OBJ_SIZE(ib_cq, irdma_cq, ibcq);
- dev_ops->ops.size_ib_pd = IRDMA_SET_RDMA_OBJ_SIZE(ib_pd, irdma_pd, ibpd);
- dev_ops->ops.size_ib_ucontext = IRDMA_SET_RDMA_OBJ_SIZE(ib_ucontext,
- irdma_ucontext,
- ibucontext);
-
-#endif /* __FreeBSD_version >= 1400000 */
dev_ops->alloc_hw_stats = irdma_alloc_hw_stats;
dev_ops->alloc_mr = irdma_alloc_mr;
dev_ops->alloc_mw = irdma_alloc_mw;
@@ -3561,9 +3434,6 @@ irdma_set_device_ops(struct ib_device *ibdev)
dev_ops->get_netdev = irdma_get_netdev;
dev_ops->map_mr_sg = irdma_map_mr_sg;
dev_ops->mmap = irdma_mmap;
-#if __FreeBSD_version >= 1400026
- dev_ops->mmap_free = irdma_mmap_free;
-#endif
dev_ops->poll_cq = irdma_poll_cq;
dev_ops->post_recv = irdma_post_recv;
dev_ops->post_send = irdma_post_send;