iwmr             1310 drivers/infiniband/hw/i40iw/i40iw_verbs.c static void i40iw_copy_user_pgaddrs(struct i40iw_mr *iwmr,
iwmr             1314 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct ib_umem *region = iwmr->region;
iwmr             1315 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1323 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (iwmr->type == IW_MEMREG_TYPE_QP)
iwmr             1327 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			    iwmr->page_size) {
iwmr             1392 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			     struct i40iw_mr *iwmr,
iwmr             1395 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1404 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		status = i40iw_get_pble(&iwdev->sc_dev, iwdev->pble_rsrc, palloc, iwmr->page_cnt);
iwmr             1414 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		pbl = iwmr->pgaddrmem;
iwmr             1417 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	i40iw_copy_user_pgaddrs(iwmr, pbl, level);
iwmr             1420 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		iwmr->pgaddrmem[0] = *pbl;
iwmr             1438 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr = iwpbl->iwmr;
iwmr             1442 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	u64 *arr = iwmr->pgaddrmem;
iwmr             1449 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	pg_size = iwmr->page_size;
iwmr             1451 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	err = i40iw_setup_pbles(iwdev, iwmr, use_pbles);
iwmr             1464 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (iwmr->type == IW_MEMREG_TYPE_QP) {
iwmr             1509 drivers/infiniband/hw/i40iw/i40iw_verbs.c static int i40iw_hw_alloc_stag(struct i40iw_device *iwdev, struct i40iw_mr *iwmr)
iwmr             1512 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pd *iwpd = to_iwpd(iwmr->ibmr.pd);
iwmr             1526 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	info->stag_idx = iwmr->stag >> I40IW_CQPSQ_STAG_IDX_SHIFT;
iwmr             1528 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	info->total_len = iwmr->length;
iwmr             1557 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr;
iwmr             1562 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
iwmr             1563 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (!iwmr)
iwmr             1572 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->stag = stag;
iwmr             1573 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.rkey = stag;
iwmr             1574 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.lkey = stag;
iwmr             1575 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.pd = pd;
iwmr             1576 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.device = pd->device;
iwmr             1577 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl = &iwmr->iwpbl;
iwmr             1578 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl->iwmr = iwmr;
iwmr             1579 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->type = IW_MEMREG_TYPE_MEM;
iwmr             1581 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->page_cnt = max_num_sg;
iwmr             1583 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	status = i40iw_get_pble(&iwdev->sc_dev, iwdev->pble_rsrc, palloc, iwmr->page_cnt);
iwmr             1590 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	err_code = i40iw_hw_alloc_stag(iwdev, iwmr);
iwmr             1595 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	return &iwmr->ibmr;
iwmr             1601 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	kfree(iwmr);
iwmr             1612 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr = to_iwmr(ibmr);
iwmr             1613 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1617 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (unlikely(iwmr->npages == iwmr->page_cnt))
iwmr             1621 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	pbl[iwmr->npages++] = cpu_to_le64(addr);
iwmr             1634 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr = to_iwmr(ibmr);
iwmr             1636 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->npages = 0;
iwmr             1673 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			  struct i40iw_mr *iwmr,
iwmr             1676 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1678 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pd *iwpd = to_iwpd(iwmr->ibmr.pd);
iwmr             1693 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	stag_info->stag_idx = iwmr->stag >> I40IW_CQPSQ_STAG_IDX_SHIFT;
iwmr             1694 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	stag_info->stag_key = (u8)iwmr->stag;
iwmr             1695 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	stag_info->total_len = iwmr->length;
iwmr             1699 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	stag_info->page_size = iwmr->page_size;
iwmr             1710 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		stag_info->reg_addr_pa = iwmr->pgaddrmem[0];
iwmr             1748 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr;
iwmr             1775 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
iwmr             1776 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (!iwmr) {
iwmr             1781 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl = &iwmr->iwpbl;
iwmr             1782 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl->iwmr = iwmr;
iwmr             1783 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->region = region;
iwmr             1784 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.pd = pd;
iwmr             1785 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.device = pd->device;
iwmr             1787 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->page_size = PAGE_SIZE;
iwmr             1789 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		iwmr->page_size = ib_umem_find_best_pgsz(region, SZ_4K | SZ_2M,
iwmr             1792 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	region_length = region->length + (start & (iwmr->page_size - 1));
iwmr             1793 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	pg_shift = ffs(iwmr->page_size) - 1;
iwmr             1795 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	pbl_depth += (region_length & (iwmr->page_size - 1)) ? 1 : 0;
iwmr             1796 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->length = region->length;
iwmr             1801 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->type = req.reg_type;
iwmr             1802 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->page_cnt = (u32)pbl_depth;
iwmr             1827 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		use_pbles = (iwmr->page_cnt != 1);
iwmr             1830 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		err = i40iw_setup_pbles(iwdev, iwmr, use_pbles);
iwmr             1835 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			ret = i40iw_check_mr_contiguous(palloc, iwmr->page_size);
iwmr             1849 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		iwmr->stag = stag;
iwmr             1850 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		iwmr->ibmr.rkey = stag;
iwmr             1851 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		iwmr->ibmr.lkey = stag;
iwmr             1853 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		err = i40iw_hwreg_mr(iwdev, iwmr, access);
iwmr             1864 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->type = req.reg_type;
iwmr             1867 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	return &iwmr->ibmr;
iwmr             1873 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	kfree(iwmr);
iwmr             1894 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr;
iwmr             1900 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
iwmr             1901 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (!iwmr)
iwmr             1903 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.pd = pd;
iwmr             1904 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.device = pd->device;
iwmr             1905 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl = &iwmr->iwpbl;
iwmr             1906 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwpbl->iwmr = iwmr;
iwmr             1907 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->type = IW_MEMREG_TYPE_MEM;
iwmr             1915 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->stag = stag;
iwmr             1916 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.rkey = stag;
iwmr             1917 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->ibmr.lkey = stag;
iwmr             1918 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->page_cnt = 1;
iwmr             1919 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->pgaddrmem[0]  = addr;
iwmr             1920 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	iwmr->length = size;
iwmr             1921 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	status = i40iw_hwreg_mr(iwdev, iwmr, access);
iwmr             1929 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	return &iwmr->ibmr;
iwmr             1931 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	kfree(iwmr);
iwmr             1952 drivers/infiniband/hw/i40iw/i40iw_verbs.c static void i40iw_del_memlist(struct i40iw_mr *iwmr,
iwmr             1955 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1958 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	switch (iwmr->type) {
iwmr             1988 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_mr *iwmr = to_iwmr(ib_mr);
iwmr             1992 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	struct i40iw_pbl *iwpbl = &iwmr->iwpbl;
iwmr             1998 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	ib_umem_release(iwmr->region);
iwmr             2000 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	if (iwmr->type != IW_MEMREG_TYPE_MEM) {
iwmr             2002 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		if (iwmr->region) {
iwmr             2009 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			i40iw_del_memlist(iwmr, ucontext);
iwmr             2011 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		if (iwpbl->pbl_allocated && iwmr->type != IW_MEMREG_TYPE_QP)
iwmr             2013 drivers/infiniband/hw/i40iw/i40iw_verbs.c 		kfree(iwmr);
iwmr             2040 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	i40iw_free_stag(iwdev, iwmr->stag);
iwmr             2043 drivers/infiniband/hw/i40iw/i40iw_verbs.c 	kfree(iwmr);
iwmr             2234 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			struct i40iw_mr *iwmr = to_iwmr(reg_wr(ib_wr)->mr);
iwmr             2236 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			struct i40iw_pble_alloc *palloc = &iwmr->iwpbl.pble_alloc;
iwmr             2249 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			info.va = (void *)(uintptr_t)iwmr->ibmr.iova;
iwmr             2250 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			info.total_len = iwmr->ibmr.length;
iwmr             2256 drivers/infiniband/hw/i40iw/i40iw_verbs.c 			if (iwmr->npages > I40IW_MIN_PAGES_PER_FMR)
iwmr               84 drivers/infiniband/hw/i40iw/i40iw_verbs.h 	struct i40iw_mr *iwmr;