diff options
Diffstat (limited to 'sys/dev/irdma/irdma_verbs.c')
| -rw-r--r-- | sys/dev/irdma/irdma_verbs.c | 132 |
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; |
