hwmr 196 drivers/infiniband/hw/ocrdma/ocrdma.h struct ocrdma_hw_mr hwmr; hwmr 1909 drivers/infiniband/hw/ocrdma/ocrdma_hw.c int ocrdma_mbx_alloc_lkey(struct ocrdma_dev *dev, struct ocrdma_hw_mr *hwmr, hwmr 1921 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->pbl_sz_flags |= (hwmr->fr_mr << OCRDMA_ALLOC_LKEY_FMR_SHIFT); hwmr 1923 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (hwmr->remote_wr << OCRDMA_ALLOC_LKEY_REMOTE_WR_SHIFT); hwmr 1925 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (hwmr->remote_rd << OCRDMA_ALLOC_LKEY_REMOTE_RD_SHIFT); hwmr 1927 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (hwmr->local_wr << OCRDMA_ALLOC_LKEY_LOCAL_WR_SHIFT); hwmr 1929 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (hwmr->remote_atomic << OCRDMA_ALLOC_LKEY_REMOTE_ATOMIC_SHIFT); hwmr 1931 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (hwmr->num_pbls << OCRDMA_ALLOC_LKEY_PBL_SIZE_SHIFT); hwmr 1937 drivers/infiniband/hw/ocrdma/ocrdma_hw.c hwmr->lkey = rsp->lrkey; hwmr 1959 drivers/infiniband/hw/ocrdma/ocrdma_hw.c static int ocrdma_mbx_reg_mr(struct ocrdma_dev *dev, struct ocrdma_hw_mr *hwmr, hwmr 1971 drivers/infiniband/hw/ocrdma/ocrdma_hw.c pdid | (hwmr->num_pbls << OCRDMA_REG_NSMR_NUM_PBL_SHIFT); hwmr 1972 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->fr_mr = hwmr->fr_mr; hwmr 1974 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->remote_wr << hwmr 1976 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->remote_rd << hwmr 1978 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->local_wr << hwmr 1980 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->remote_atomic << hwmr 1982 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->mw_bind << hwmr 1986 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->pbe_size / OCRDMA_MIN_HPAGE_SIZE); hwmr 1987 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->flags_hpage_pbe_sz |= (hwmr->pbl_size / OCRDMA_MIN_HPAGE_SIZE) << hwmr 1989 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->totlen_low = hwmr->len; hwmr 1990 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->totlen_high = upper_32_bits(hwmr->len); hwmr 1991 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->fbo_low = (u32) (hwmr->fbo & 0xffffffff); hwmr 1992 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->fbo_high = (u32) upper_32_bits(hwmr->fbo); hwmr 1993 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->va_loaddr = (u32) hwmr->va; hwmr 1994 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->va_hiaddr = (u32) upper_32_bits(hwmr->va); hwmr 1997 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->pbl[i].lo = (u32) (hwmr->pbl_table[i].pa & 0xffffffff); hwmr 1998 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->pbl[i].hi = upper_32_bits(hwmr->pbl_table[i].pa); hwmr 2004 drivers/infiniband/hw/ocrdma/ocrdma_hw.c hwmr->lkey = rsp->lrkey; hwmr 2011 drivers/infiniband/hw/ocrdma/ocrdma_hw.c struct ocrdma_hw_mr *hwmr, u32 pbl_cnt, hwmr 2021 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cmd->lrkey = hwmr->lkey; hwmr 2028 drivers/infiniband/hw/ocrdma/ocrdma_hw.c (u32) (hwmr->pbl_table[i + pbl_offset].pa & 0xffffffff); hwmr 2030 drivers/infiniband/hw/ocrdma/ocrdma_hw.c upper_32_bits(hwmr->pbl_table[i + pbl_offset].pa); hwmr 2039 drivers/infiniband/hw/ocrdma/ocrdma_hw.c struct ocrdma_hw_mr *hwmr, u32 pdid, int acc) hwmr 2044 drivers/infiniband/hw/ocrdma/ocrdma_hw.c u32 pending_pbl_cnt = hwmr->num_pbls; hwmr 2051 drivers/infiniband/hw/ocrdma/ocrdma_hw.c status = ocrdma_mbx_reg_mr(dev, hwmr, pdid, hwmr 2052 drivers/infiniband/hw/ocrdma/ocrdma_hw.c cur_pbl_cnt, hwmr->pbe_size, last); hwmr 2071 drivers/infiniband/hw/ocrdma/ocrdma_hw.c status = ocrdma_mbx_reg_mr_cont(dev, hwmr, cur_pbl_cnt, hwmr 117 drivers/infiniband/hw/ocrdma/ocrdma_hw.h int ocrdma_mbx_alloc_lkey(struct ocrdma_dev *, struct ocrdma_hw_mr *hwmr, hwmr 121 drivers/infiniband/hw/ocrdma/ocrdma_hw.h int ocrdma_reg_mr(struct ocrdma_dev *, struct ocrdma_hw_mr *hwmr, hwmr 704 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.fr_mr = 0; hwmr 705 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_rd = 1; hwmr 706 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_rd = (acc & IB_ACCESS_REMOTE_READ) ? 1 : 0; hwmr 707 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0; hwmr 708 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_wr = (acc & IB_ACCESS_LOCAL_WRITE) ? 1 : 0; hwmr 709 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.mw_bind = (acc & IB_ACCESS_MW_BIND) ? 1 : 0; hwmr 710 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_atomic = (acc & IB_ACCESS_REMOTE_ATOMIC) ? 1 : 0; hwmr 711 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.num_pbls = num_pbls; hwmr 713 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c status = ocrdma_mbx_alloc_lkey(dev, &mr->hwmr, pdid, addr_check); hwmr 717 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.lkey = mr->hwmr.lkey; hwmr 718 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) hwmr 719 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.rkey = mr->hwmr.lkey; hwmr 787 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.num_pbes = num_pbes; hwmr 788 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.num_pbls = num_pbls; hwmr 789 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.pbl_size = pbl_size; hwmr 826 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c struct ocrdma_pbl *pbl_tbl = mr->hwmr.pbl_table; hwmr 831 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (!mr->hwmr.num_pbes) hwmr 853 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (pbe_cnt == (mr->hwmr.pbl_size / sizeof(u64))) { hwmr 888 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.pbe_size = PAGE_SIZE; hwmr 889 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.fbo = ib_umem_offset(mr->umem); hwmr 890 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.va = usr_addr; hwmr 891 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.len = len; hwmr 892 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0; hwmr 893 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_rd = (acc & IB_ACCESS_REMOTE_READ) ? 1 : 0; hwmr 894 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_wr = (acc & IB_ACCESS_LOCAL_WRITE) ? 1 : 0; hwmr 895 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_rd = 1; hwmr 896 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_atomic = (acc & IB_ACCESS_REMOTE_ATOMIC) ? 1 : 0; hwmr 897 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c status = ocrdma_build_pbl_tbl(dev, &mr->hwmr); hwmr 901 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); hwmr 904 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.lkey = mr->hwmr.lkey; hwmr 905 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) hwmr 906 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.rkey = mr->hwmr.lkey; hwmr 911 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); hwmr 922 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c (void) ocrdma_mbx_dealloc_lkey(dev, mr->hwmr.fr_mr, mr->hwmr.lkey); hwmr 925 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); hwmr 2045 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c struct ocrdma_pbl *pbl_tbl = mr->hwmr.pbl_table; hwmr 2085 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (num_pbes == (mr->hwmr.pbl_size/sizeof(u64))) { hwmr 2938 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.fr_mr = 1; hwmr 2939 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_rd = 0; hwmr 2940 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.remote_wr = 0; hwmr 2941 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_rd = 0; hwmr 2942 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.local_wr = 0; hwmr 2943 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->hwmr.mw_bind = 0; hwmr 2944 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c status = ocrdma_build_pbl_tbl(dev, &mr->hwmr); hwmr 2947 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, 0); hwmr 2950 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.rkey = mr->hwmr.lkey; hwmr 2951 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c mr->ibmr.lkey = mr->hwmr.lkey; hwmr 2952 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c dev->stag_arr[(mr->hwmr.lkey >> 8) & (OCRDMA_MAX_STAG - 1)] = hwmr 2956 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); hwmr 2968 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c if (unlikely(mr->npages == mr->hwmr.num_pbes))