mhp 43 drivers/infiniband/hw/cxgb3/iwch_mem.c static int iwch_finish_mem_reg(struct iwch_mr *mhp, u32 stag) mhp 47 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.state = 1; mhp 48 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.stag = stag; mhp 50 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->ibmr.rkey = mhp->ibmr.lkey = stag; mhp 51 drivers/infiniband/hw/cxgb3/iwch_mem.c pr_debug("%s mmid 0x%x mhp %p\n", __func__, mmid, mhp); mhp 52 drivers/infiniband/hw/cxgb3/iwch_mem.c return xa_insert_irq(&mhp->rhp->mrs, mmid, mhp, GFP_KERNEL); mhp 56 drivers/infiniband/hw/cxgb3/iwch_mem.c struct iwch_mr *mhp, int shift) mhp 62 drivers/infiniband/hw/cxgb3/iwch_mem.c &stag, mhp->attr.pdid, mhp 63 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.perms, mhp 64 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.zbva, mhp 65 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.va_fbo, mhp 66 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.len, mhp 68 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_size, mhp->attr.pbl_addr)) mhp 71 drivers/infiniband/hw/cxgb3/iwch_mem.c ret = iwch_finish_mem_reg(mhp, stag); mhp 73 drivers/infiniband/hw/cxgb3/iwch_mem.c cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp 74 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_addr); mhp 78 drivers/infiniband/hw/cxgb3/iwch_mem.c int iwch_alloc_pbl(struct iwch_mr *mhp, int npages) mhp 80 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_addr = cxio_hal_pblpool_alloc(&mhp->rhp->rdev, mhp 83 drivers/infiniband/hw/cxgb3/iwch_mem.c if (!mhp->attr.pbl_addr) mhp 86 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_size = npages; mhp 91 drivers/infiniband/hw/cxgb3/iwch_mem.c void iwch_free_pbl(struct iwch_mr *mhp) mhp 93 drivers/infiniband/hw/cxgb3/iwch_mem.c cxio_hal_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, mhp 94 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_size << 3); mhp 97 drivers/infiniband/hw/cxgb3/iwch_mem.c int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset) mhp 99 drivers/infiniband/hw/cxgb3/iwch_mem.c return cxio_write_pbl(&mhp->rhp->rdev, pages, mhp 100 drivers/infiniband/hw/cxgb3/iwch_mem.c mhp->attr.pbl_addr + (offset << 3), npages); mhp 334 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp; mhp 339 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = to_iwch_mr(ib_mr); mhp 340 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp->pages); mhp 341 drivers/infiniband/hw/cxgb3/iwch_provider.c rhp = mhp->rhp; mhp 342 drivers/infiniband/hw/cxgb3/iwch_provider.c mmid = mhp->attr.stag >> 8; mhp 343 drivers/infiniband/hw/cxgb3/iwch_provider.c cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp 344 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pbl_addr); mhp 345 drivers/infiniband/hw/cxgb3/iwch_provider.c iwch_free_pbl(mhp); mhp 347 drivers/infiniband/hw/cxgb3/iwch_provider.c if (mhp->kva) mhp 348 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree((void *) (unsigned long) mhp->kva); mhp 349 drivers/infiniband/hw/cxgb3/iwch_provider.c ib_umem_release(mhp->umem); mhp 350 drivers/infiniband/hw/cxgb3/iwch_provider.c pr_debug("%s mmid 0x%x ptr %p\n", __func__, mmid, mhp); mhp 351 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 361 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp; mhp 375 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 376 drivers/infiniband/hw/cxgb3/iwch_provider.c if (!mhp) mhp 379 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->rhp = rhp; mhp 399 drivers/infiniband/hw/cxgb3/iwch_provider.c ret = iwch_alloc_pbl(mhp, npages); mhp 405 drivers/infiniband/hw/cxgb3/iwch_provider.c ret = iwch_write_pbl(mhp, page_list, npages, 0); mhp 410 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pdid = php->pdid; mhp 411 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.zbva = 0; mhp 413 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.perms = iwch_ib_to_tpt_access(acc); mhp 414 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.va_fbo = 0; mhp 415 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.page_size = shift - 12; mhp 417 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.len = (u32) total_size; mhp 418 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pbl_size = npages; mhp 419 drivers/infiniband/hw/cxgb3/iwch_provider.c ret = iwch_register_mem(rhp, php, mhp, shift); mhp 423 drivers/infiniband/hw/cxgb3/iwch_provider.c return &mhp->ibmr; mhp 426 drivers/infiniband/hw/cxgb3/iwch_provider.c iwch_free_pbl(mhp); mhp 429 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 441 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp; mhp 448 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 449 drivers/infiniband/hw/cxgb3/iwch_provider.c if (!mhp) mhp 452 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->rhp = rhp; mhp 454 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->umem = ib_umem_get(udata, start, length, acc, 0); mhp 455 drivers/infiniband/hw/cxgb3/iwch_provider.c if (IS_ERR(mhp->umem)) { mhp 456 drivers/infiniband/hw/cxgb3/iwch_provider.c err = PTR_ERR(mhp->umem); mhp 457 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 463 drivers/infiniband/hw/cxgb3/iwch_provider.c n = ib_umem_num_pages(mhp->umem); mhp 465 drivers/infiniband/hw/cxgb3/iwch_provider.c err = iwch_alloc_pbl(mhp, n); mhp 477 drivers/infiniband/hw/cxgb3/iwch_provider.c for_each_sg_dma_page(mhp->umem->sg_head.sgl, &sg_iter, mhp->umem->nmap, 0) { mhp 480 drivers/infiniband/hw/cxgb3/iwch_provider.c err = iwch_write_pbl(mhp, pages, i, n); mhp 489 drivers/infiniband/hw/cxgb3/iwch_provider.c err = iwch_write_pbl(mhp, pages, i, n); mhp 496 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pdid = php->pdid; mhp 497 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.zbva = 0; mhp 498 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.perms = iwch_ib_to_tpt_access(acc); mhp 499 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.va_fbo = virt; mhp 500 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.page_size = shift - 12; mhp 501 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.len = (u32) length; mhp 503 drivers/infiniband/hw/cxgb3/iwch_provider.c err = iwch_register_mem(rhp, php, mhp, shift); mhp 508 drivers/infiniband/hw/cxgb3/iwch_provider.c uresp.pbl_addr = (mhp->attr.pbl_addr - mhp 514 drivers/infiniband/hw/cxgb3/iwch_provider.c iwch_dereg_mr(&mhp->ibmr, udata); mhp 520 drivers/infiniband/hw/cxgb3/iwch_provider.c return &mhp->ibmr; mhp 523 drivers/infiniband/hw/cxgb3/iwch_provider.c iwch_free_pbl(mhp); mhp 526 drivers/infiniband/hw/cxgb3/iwch_provider.c ib_umem_release(mhp->umem); mhp 527 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 536 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mw *mhp; mhp 546 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 547 drivers/infiniband/hw/cxgb3/iwch_provider.c if (!mhp) mhp 551 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 554 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->rhp = rhp; mhp 555 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pdid = php->pdid; mhp 556 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.type = TPT_MW; mhp 557 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.stag = stag; mhp 559 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->ibmw.rkey = stag; mhp 560 drivers/infiniband/hw/cxgb3/iwch_provider.c if (xa_insert_irq(&rhp->mrs, mmid, mhp, GFP_KERNEL)) { mhp 561 drivers/infiniband/hw/cxgb3/iwch_provider.c cxio_deallocate_window(&rhp->rdev, mhp->attr.stag); mhp 562 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 565 drivers/infiniband/hw/cxgb3/iwch_provider.c pr_debug("%s mmid 0x%x mhp %p stag 0x%x\n", __func__, mmid, mhp, stag); mhp 566 drivers/infiniband/hw/cxgb3/iwch_provider.c return &(mhp->ibmw); mhp 572 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mw *mhp; mhp 575 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = to_iwch_mw(mw); mhp 576 drivers/infiniband/hw/cxgb3/iwch_provider.c rhp = mhp->rhp; mhp 578 drivers/infiniband/hw/cxgb3/iwch_provider.c cxio_deallocate_window(&rhp->rdev, mhp->attr.stag); mhp 580 drivers/infiniband/hw/cxgb3/iwch_provider.c pr_debug("%s ib_mw %p mmid 0x%x ptr %p\n", __func__, mw, mmid, mhp); mhp 581 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 590 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp; mhp 601 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 602 drivers/infiniband/hw/cxgb3/iwch_provider.c if (!mhp) mhp 605 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->pages = kcalloc(max_num_sg, sizeof(u64), GFP_KERNEL); mhp 606 drivers/infiniband/hw/cxgb3/iwch_provider.c if (!mhp->pages) mhp 609 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->rhp = rhp; mhp 610 drivers/infiniband/hw/cxgb3/iwch_provider.c ret = iwch_alloc_pbl(mhp, max_num_sg); mhp 613 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pbl_size = max_num_sg; mhp 615 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pbl_size, mhp->attr.pbl_addr); mhp 618 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pdid = php->pdid; mhp 619 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.type = TPT_NON_SHARED_MR; mhp 620 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.stag = stag; mhp 621 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.state = 1; mhp 623 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->ibmr.rkey = mhp->ibmr.lkey = stag; mhp 624 drivers/infiniband/hw/cxgb3/iwch_provider.c ret = xa_insert_irq(&rhp->mrs, mmid, mhp, GFP_KERNEL); mhp 628 drivers/infiniband/hw/cxgb3/iwch_provider.c pr_debug("%s mmid 0x%x mhp %p stag 0x%x\n", __func__, mmid, mhp, stag); mhp 629 drivers/infiniband/hw/cxgb3/iwch_provider.c return &(mhp->ibmr); mhp 631 drivers/infiniband/hw/cxgb3/iwch_provider.c cxio_dereg_mem(&rhp->rdev, stag, mhp->attr.pbl_size, mhp 632 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->attr.pbl_addr); mhp 634 drivers/infiniband/hw/cxgb3/iwch_provider.c iwch_free_pbl(mhp); mhp 636 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp->pages); mhp 638 drivers/infiniband/hw/cxgb3/iwch_provider.c kfree(mhp); mhp 645 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp = to_iwch_mr(ibmr); mhp 647 drivers/infiniband/hw/cxgb3/iwch_provider.c if (unlikely(mhp->npages == mhp->attr.pbl_size)) mhp 650 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->pages[mhp->npages++] = addr; mhp 658 drivers/infiniband/hw/cxgb3/iwch_provider.c struct iwch_mr *mhp = to_iwch_mr(ibmr); mhp 660 drivers/infiniband/hw/cxgb3/iwch_provider.c mhp->npages = 0; mhp 340 drivers/infiniband/hw/cxgb3/iwch_provider.h struct iwch_mr *mhp, int shift); mhp 341 drivers/infiniband/hw/cxgb3/iwch_provider.h int iwch_alloc_pbl(struct iwch_mr *mhp, int npages); mhp 342 drivers/infiniband/hw/cxgb3/iwch_provider.h void iwch_free_pbl(struct iwch_mr *mhp); mhp 343 drivers/infiniband/hw/cxgb3/iwch_provider.h int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset); mhp 152 drivers/infiniband/hw/cxgb3/iwch_qp.c struct iwch_mr *mhp = to_iwch_mr(wr->mr); mhp 156 drivers/infiniband/hw/cxgb3/iwch_qp.c if (mhp->npages > T3_MAX_FASTREG_DEPTH) mhp 160 drivers/infiniband/hw/cxgb3/iwch_qp.c wqe->fastreg.len = cpu_to_be32(mhp->ibmr.length); mhp 161 drivers/infiniband/hw/cxgb3/iwch_qp.c wqe->fastreg.va_base_hi = cpu_to_be32(mhp->ibmr.iova >> 32); mhp 163 drivers/infiniband/hw/cxgb3/iwch_qp.c cpu_to_be32(mhp->ibmr.iova & 0xffffffff); mhp 165 drivers/infiniband/hw/cxgb3/iwch_qp.c V_FR_PAGE_COUNT(mhp->npages) | mhp 170 drivers/infiniband/hw/cxgb3/iwch_qp.c for (i = 0; i < mhp->npages; i++, p++) { mhp 179 drivers/infiniband/hw/cxgb3/iwch_qp.c 0, 1 + mhp->npages - T3_MAX_FASTREG_FRAG, mhp 184 drivers/infiniband/hw/cxgb3/iwch_qp.c *p = cpu_to_be64((u64)mhp->pages[i]); mhp 186 drivers/infiniband/hw/cxgb3/iwch_qp.c *flit_cnt = 5 + mhp->npages; mhp 205 drivers/infiniband/hw/cxgb3/iwch_qp.c struct iwch_mr *mhp; mhp 209 drivers/infiniband/hw/cxgb3/iwch_qp.c mhp = get_mhp(rhp, (sg_list[i].lkey) >> 8); mhp 210 drivers/infiniband/hw/cxgb3/iwch_qp.c if (!mhp) { mhp 214 drivers/infiniband/hw/cxgb3/iwch_qp.c if (!mhp->attr.state) { mhp 218 drivers/infiniband/hw/cxgb3/iwch_qp.c if (mhp->attr.zbva) { mhp 223 drivers/infiniband/hw/cxgb3/iwch_qp.c if (sg_list[i].addr < mhp->attr.va_fbo) { mhp 233 drivers/infiniband/hw/cxgb3/iwch_qp.c mhp->attr.va_fbo + ((u64) mhp->attr.len)) { mhp 237 drivers/infiniband/hw/cxgb3/iwch_qp.c offset = sg_list[i].addr - mhp->attr.va_fbo; mhp 238 drivers/infiniband/hw/cxgb3/iwch_qp.c offset += mhp->attr.va_fbo & mhp 239 drivers/infiniband/hw/cxgb3/iwch_qp.c ((1UL << (12 + mhp->attr.page_size)) - 1); mhp 240 drivers/infiniband/hw/cxgb3/iwch_qp.c pbl_addr[i] = ((mhp->attr.pbl_addr - mhp 242 drivers/infiniband/hw/cxgb3/iwch_qp.c (offset >> (12 + mhp->attr.page_size)); mhp 243 drivers/infiniband/hw/cxgb3/iwch_qp.c page_size[i] = mhp->attr.page_size; mhp 393 drivers/infiniband/hw/cxgb4/mem.c static int finish_mem_reg(struct c4iw_mr *mhp, u32 stag) mhp 397 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.state = 1; mhp 398 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.stag = stag; mhp 400 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmr.rkey = mhp->ibmr.lkey = stag; mhp 401 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmr.length = mhp->attr.len; mhp 402 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmr.iova = mhp->attr.va_fbo; mhp 403 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmr.page_size = 1U << (mhp->attr.page_size + 12); mhp 404 drivers/infiniband/hw/cxgb4/mem.c pr_debug("mmid 0x%x mhp %p\n", mmid, mhp); mhp 405 drivers/infiniband/hw/cxgb4/mem.c return xa_insert_irq(&mhp->rhp->mrs, mmid, mhp, GFP_KERNEL); mhp 409 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp, int shift) mhp 414 drivers/infiniband/hw/cxgb4/mem.c ret = write_tpt_entry(&rhp->rdev, 0, &stag, 1, mhp->attr.pdid, mhp 415 drivers/infiniband/hw/cxgb4/mem.c FW_RI_STAG_NSMR, mhp->attr.len ? mhp 416 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.perms : 0, mhp 417 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.mw_bind_enable, mhp->attr.zbva, mhp 418 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.va_fbo, mhp->attr.len ? mhp 419 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.len : -1, shift - 12, mhp 420 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size, mhp->attr.pbl_addr, NULL, mhp 421 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 425 drivers/infiniband/hw/cxgb4/mem.c ret = finish_mem_reg(mhp, stag); mhp 427 drivers/infiniband/hw/cxgb4/mem.c dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp 428 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp); mhp 429 drivers/infiniband/hw/cxgb4/mem.c mhp->dereg_skb = NULL; mhp 434 drivers/infiniband/hw/cxgb4/mem.c static int alloc_pbl(struct c4iw_mr *mhp, int npages) mhp 436 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr = c4iw_pblpool_alloc(&mhp->rhp->rdev, mhp 439 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->attr.pbl_addr) mhp 442 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size = npages; mhp 451 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp; mhp 459 drivers/infiniband/hw/cxgb4/mem.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 460 drivers/infiniband/hw/cxgb4/mem.c if (!mhp) mhp 462 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL); mhp 463 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->wr_waitp) { mhp 467 drivers/infiniband/hw/cxgb4/mem.c c4iw_init_wr_wait(mhp->wr_waitp); mhp 469 drivers/infiniband/hw/cxgb4/mem.c mhp->dereg_skb = alloc_skb(SGE_MAX_WR_LEN, GFP_KERNEL); mhp 470 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->dereg_skb) { mhp 475 drivers/infiniband/hw/cxgb4/mem.c mhp->rhp = rhp; mhp 476 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pdid = php->pdid; mhp 477 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.perms = c4iw_ib_to_tpt_access(acc); mhp 478 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.mw_bind_enable = (acc&IB_ACCESS_MW_BIND) == IB_ACCESS_MW_BIND; mhp 479 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.zbva = 0; mhp 480 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.va_fbo = 0; mhp 481 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.page_size = 0; mhp 482 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.len = ~0ULL; mhp 483 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size = 0; mhp 486 drivers/infiniband/hw/cxgb4/mem.c FW_RI_STAG_NSMR, mhp->attr.perms, mhp 487 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.mw_bind_enable, 0, 0, ~0ULL, 0, 0, 0, mhp 488 drivers/infiniband/hw/cxgb4/mem.c NULL, mhp->wr_waitp); mhp 492 drivers/infiniband/hw/cxgb4/mem.c ret = finish_mem_reg(mhp, stag); mhp 495 drivers/infiniband/hw/cxgb4/mem.c return &mhp->ibmr; mhp 497 drivers/infiniband/hw/cxgb4/mem.c dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp 498 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp); mhp 500 drivers/infiniband/hw/cxgb4/mem.c kfree_skb(mhp->dereg_skb); mhp 502 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 504 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 517 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp; mhp 533 drivers/infiniband/hw/cxgb4/mem.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 534 drivers/infiniband/hw/cxgb4/mem.c if (!mhp) mhp 536 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL); mhp 537 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->wr_waitp) mhp 540 drivers/infiniband/hw/cxgb4/mem.c mhp->dereg_skb = alloc_skb(SGE_MAX_WR_LEN, GFP_KERNEL); mhp 541 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->dereg_skb) mhp 544 drivers/infiniband/hw/cxgb4/mem.c mhp->rhp = rhp; mhp 546 drivers/infiniband/hw/cxgb4/mem.c mhp->umem = ib_umem_get(udata, start, length, acc, 0); mhp 547 drivers/infiniband/hw/cxgb4/mem.c if (IS_ERR(mhp->umem)) mhp 552 drivers/infiniband/hw/cxgb4/mem.c n = ib_umem_num_pages(mhp->umem); mhp 553 drivers/infiniband/hw/cxgb4/mem.c err = alloc_pbl(mhp, n); mhp 565 drivers/infiniband/hw/cxgb4/mem.c for_each_sg_dma_page(mhp->umem->sg_head.sgl, &sg_iter, mhp->umem->nmap, 0) { mhp 568 drivers/infiniband/hw/cxgb4/mem.c err = write_pbl(&mhp->rhp->rdev, pages, mhp 569 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr + (n << 3), i, mhp 570 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 579 drivers/infiniband/hw/cxgb4/mem.c err = write_pbl(&mhp->rhp->rdev, pages, mhp 580 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr + (n << 3), i, mhp 581 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 588 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pdid = php->pdid; mhp 589 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.zbva = 0; mhp 590 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.perms = c4iw_ib_to_tpt_access(acc); mhp 591 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.va_fbo = virt; mhp 592 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.page_size = shift - 12; mhp 593 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.len = length; mhp 595 drivers/infiniband/hw/cxgb4/mem.c err = register_mem(rhp, php, mhp, shift); mhp 599 drivers/infiniband/hw/cxgb4/mem.c return &mhp->ibmr; mhp 602 drivers/infiniband/hw/cxgb4/mem.c c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, mhp 603 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size << 3); mhp 605 drivers/infiniband/hw/cxgb4/mem.c ib_umem_release(mhp->umem); mhp 607 drivers/infiniband/hw/cxgb4/mem.c kfree_skb(mhp->dereg_skb); mhp 609 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 611 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 620 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mw *mhp; mhp 630 drivers/infiniband/hw/cxgb4/mem.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 631 drivers/infiniband/hw/cxgb4/mem.c if (!mhp) mhp 634 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL); mhp 635 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->wr_waitp) { mhp 640 drivers/infiniband/hw/cxgb4/mem.c mhp->dereg_skb = alloc_skb(SGE_MAX_WR_LEN, GFP_KERNEL); mhp 641 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->dereg_skb) { mhp 646 drivers/infiniband/hw/cxgb4/mem.c ret = allocate_window(&rhp->rdev, &stag, php->pdid, mhp->wr_waitp); mhp 649 drivers/infiniband/hw/cxgb4/mem.c mhp->rhp = rhp; mhp 650 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pdid = php->pdid; mhp 651 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.type = FW_RI_STAG_MW; mhp 652 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.stag = stag; mhp 654 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmw.rkey = stag; mhp 655 drivers/infiniband/hw/cxgb4/mem.c if (xa_insert_irq(&rhp->mrs, mmid, mhp, GFP_KERNEL)) { mhp 659 drivers/infiniband/hw/cxgb4/mem.c pr_debug("mmid 0x%x mhp %p stag 0x%x\n", mmid, mhp, stag); mhp 660 drivers/infiniband/hw/cxgb4/mem.c return &(mhp->ibmw); mhp 663 drivers/infiniband/hw/cxgb4/mem.c deallocate_window(&rhp->rdev, mhp->attr.stag, mhp->dereg_skb, mhp 664 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 666 drivers/infiniband/hw/cxgb4/mem.c kfree_skb(mhp->dereg_skb); mhp 668 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 670 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 677 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mw *mhp; mhp 680 drivers/infiniband/hw/cxgb4/mem.c mhp = to_c4iw_mw(mw); mhp 681 drivers/infiniband/hw/cxgb4/mem.c rhp = mhp->rhp; mhp 684 drivers/infiniband/hw/cxgb4/mem.c deallocate_window(&rhp->rdev, mhp->attr.stag, mhp->dereg_skb, mhp 685 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 686 drivers/infiniband/hw/cxgb4/mem.c kfree_skb(mhp->dereg_skb); mhp 687 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 688 drivers/infiniband/hw/cxgb4/mem.c pr_debug("ib_mw %p mmid 0x%x ptr %p\n", mw, mmid, mhp); mhp 689 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 698 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp; mhp 712 drivers/infiniband/hw/cxgb4/mem.c mhp = kzalloc(sizeof(*mhp), GFP_KERNEL); mhp 713 drivers/infiniband/hw/cxgb4/mem.c if (!mhp) { mhp 718 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL); mhp 719 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->wr_waitp) { mhp 723 drivers/infiniband/hw/cxgb4/mem.c c4iw_init_wr_wait(mhp->wr_waitp); mhp 725 drivers/infiniband/hw/cxgb4/mem.c mhp->mpl = dma_alloc_coherent(&rhp->rdev.lldi.pdev->dev, mhp 726 drivers/infiniband/hw/cxgb4/mem.c length, &mhp->mpl_addr, GFP_KERNEL); mhp 727 drivers/infiniband/hw/cxgb4/mem.c if (!mhp->mpl) { mhp 731 drivers/infiniband/hw/cxgb4/mem.c mhp->max_mpl_len = length; mhp 733 drivers/infiniband/hw/cxgb4/mem.c mhp->rhp = rhp; mhp 734 drivers/infiniband/hw/cxgb4/mem.c ret = alloc_pbl(mhp, max_num_sg); mhp 737 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size = max_num_sg; mhp 739 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size, mhp->attr.pbl_addr, mhp 740 drivers/infiniband/hw/cxgb4/mem.c mhp->wr_waitp); mhp 743 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pdid = php->pdid; mhp 744 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.type = FW_RI_STAG_NSMR; mhp 745 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.stag = stag; mhp 746 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.state = 0; mhp 748 drivers/infiniband/hw/cxgb4/mem.c mhp->ibmr.rkey = mhp->ibmr.lkey = stag; mhp 749 drivers/infiniband/hw/cxgb4/mem.c if (xa_insert_irq(&rhp->mrs, mmid, mhp, GFP_KERNEL)) { mhp 754 drivers/infiniband/hw/cxgb4/mem.c pr_debug("mmid 0x%x mhp %p stag 0x%x\n", mmid, mhp, stag); mhp 755 drivers/infiniband/hw/cxgb4/mem.c return &(mhp->ibmr); mhp 757 drivers/infiniband/hw/cxgb4/mem.c dereg_mem(&rhp->rdev, stag, mhp->attr.pbl_size, mhp 758 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp); mhp 760 drivers/infiniband/hw/cxgb4/mem.c c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, mhp 761 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size << 3); mhp 763 drivers/infiniband/hw/cxgb4/mem.c dma_free_coherent(&mhp->rhp->rdev.lldi.pdev->dev, mhp 764 drivers/infiniband/hw/cxgb4/mem.c mhp->max_mpl_len, mhp->mpl, mhp->mpl_addr); mhp 766 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 768 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 775 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp = to_c4iw_mr(ibmr); mhp 777 drivers/infiniband/hw/cxgb4/mem.c if (unlikely(mhp->mpl_len == mhp->attr.pbl_size)) mhp 780 drivers/infiniband/hw/cxgb4/mem.c mhp->mpl[mhp->mpl_len++] = addr; mhp 788 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp = to_c4iw_mr(ibmr); mhp 790 drivers/infiniband/hw/cxgb4/mem.c mhp->mpl_len = 0; mhp 798 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp; mhp 803 drivers/infiniband/hw/cxgb4/mem.c mhp = to_c4iw_mr(ib_mr); mhp 804 drivers/infiniband/hw/cxgb4/mem.c rhp = mhp->rhp; mhp 805 drivers/infiniband/hw/cxgb4/mem.c mmid = mhp->attr.stag >> 8; mhp 807 drivers/infiniband/hw/cxgb4/mem.c if (mhp->mpl) mhp 808 drivers/infiniband/hw/cxgb4/mem.c dma_free_coherent(&mhp->rhp->rdev.lldi.pdev->dev, mhp 809 drivers/infiniband/hw/cxgb4/mem.c mhp->max_mpl_len, mhp->mpl, mhp->mpl_addr); mhp 810 drivers/infiniband/hw/cxgb4/mem.c dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp 811 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp); mhp 812 drivers/infiniband/hw/cxgb4/mem.c if (mhp->attr.pbl_size) mhp 813 drivers/infiniband/hw/cxgb4/mem.c c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, mhp 814 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.pbl_size << 3); mhp 815 drivers/infiniband/hw/cxgb4/mem.c if (mhp->kva) mhp 816 drivers/infiniband/hw/cxgb4/mem.c kfree((void *) (unsigned long) mhp->kva); mhp 817 drivers/infiniband/hw/cxgb4/mem.c ib_umem_release(mhp->umem); mhp 818 drivers/infiniband/hw/cxgb4/mem.c pr_debug("mmid 0x%x ptr %p\n", mmid, mhp); mhp 819 drivers/infiniband/hw/cxgb4/mem.c c4iw_put_wr_wait(mhp->wr_waitp); mhp 820 drivers/infiniband/hw/cxgb4/mem.c kfree(mhp); mhp 826 drivers/infiniband/hw/cxgb4/mem.c struct c4iw_mr *mhp; mhp 830 drivers/infiniband/hw/cxgb4/mem.c mhp = xa_load(&rhp->mrs, rkey >> 8); mhp 831 drivers/infiniband/hw/cxgb4/mem.c if (mhp) mhp 832 drivers/infiniband/hw/cxgb4/mem.c mhp->attr.state = 0; mhp 788 drivers/infiniband/hw/cxgb4/qp.c const struct ib_reg_wr *wr, struct c4iw_mr *mhp, mhp 794 drivers/infiniband/hw/cxgb4/qp.c fr->stag = cpu_to_be32(mhp->ibmr.rkey); mhp 797 drivers/infiniband/hw/cxgb4/qp.c FW_RI_TPTE_STAGKEY_V((mhp->ibmr.rkey & FW_RI_TPTE_STAGKEY_M)) | mhp 800 drivers/infiniband/hw/cxgb4/qp.c FW_RI_TPTE_PDID_V(mhp->attr.pdid)); mhp 806 drivers/infiniband/hw/cxgb4/qp.c PBL_OFF(&mhp->rhp->rdev, mhp->attr.pbl_addr)>>3)); mhp 809 drivers/infiniband/hw/cxgb4/qp.c fr->tpte.len_lo = cpu_to_be32(mhp->ibmr.length); mhp 810 drivers/infiniband/hw/cxgb4/qp.c fr->tpte.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); mhp 811 drivers/infiniband/hw/cxgb4/qp.c fr->tpte.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff); mhp 813 drivers/infiniband/hw/cxgb4/qp.c p[0] = cpu_to_be64((u64)mhp->mpl[0]); mhp 814 drivers/infiniband/hw/cxgb4/qp.c p[1] = cpu_to_be64((u64)mhp->mpl[1]); mhp 820 drivers/infiniband/hw/cxgb4/qp.c const struct ib_reg_wr *wr, struct c4iw_mr *mhp, mhp 826 drivers/infiniband/hw/cxgb4/qp.c int pbllen = roundup(mhp->mpl_len * sizeof(u64), 32); mhp 829 drivers/infiniband/hw/cxgb4/qp.c if (mhp->mpl_len > t4_max_fr_depth(dsgl_supported && use_dsgl)) mhp 837 drivers/infiniband/hw/cxgb4/qp.c wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length); mhp 839 drivers/infiniband/hw/cxgb4/qp.c wqe->fr.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); mhp 840 drivers/infiniband/hw/cxgb4/qp.c wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & mhp 846 drivers/infiniband/hw/cxgb4/qp.c for (i = 0; i < mhp->mpl_len; i++) mhp 847 drivers/infiniband/hw/cxgb4/qp.c mhp->mpl[i] = (__force u64)cpu_to_be64((u64)mhp->mpl[i]); mhp 853 drivers/infiniband/hw/cxgb4/qp.c sglp->addr0 = cpu_to_be64(mhp->mpl_addr); mhp 865 drivers/infiniband/hw/cxgb4/qp.c for (i = 0; i < mhp->mpl_len; i++) { mhp 866 drivers/infiniband/hw/cxgb4/qp.c *p = cpu_to_be64((u64)mhp->mpl[i]); mhp 1192 drivers/infiniband/hw/cxgb4/qp.c struct c4iw_mr *mhp = to_c4iw_mr(reg_wr(wr)->mr); mhp 1196 drivers/infiniband/hw/cxgb4/qp.c !mhp->attr.state && mhp->mpl_len <= 2) { mhp 1199 drivers/infiniband/hw/cxgb4/qp.c mhp, &len16); mhp 1203 drivers/infiniband/hw/cxgb4/qp.c mhp, &len16, mhp 1208 drivers/infiniband/hw/cxgb4/qp.c mhp->attr.state = 1; mhp 440 drivers/infiniband/hw/cxgb4/restrack.c struct c4iw_mr *mhp = to_c4iw_mr(ibmr); mhp 441 drivers/infiniband/hw/cxgb4/restrack.c struct c4iw_dev *dev = mhp->rhp; mhp 442 drivers/infiniband/hw/cxgb4/restrack.c u32 stag = mhp->attr.stag; mhp 4652 drivers/iommu/intel-iommu.c struct memory_notify *mhp = v; mhp 4658 drivers/iommu/intel-iommu.c start = mhp->start_pfn << PAGE_SHIFT; mhp 4659 drivers/iommu/intel-iommu.c end = ((mhp->start_pfn + mhp->nr_pages) << PAGE_SHIFT) - 1; mhp 4669 drivers/iommu/intel-iommu.c start_vpfn = mm_to_dma_pfn(mhp->start_pfn); mhp 4670 drivers/iommu/intel-iommu.c last_vpfn = mm_to_dma_pfn(mhp->start_pfn + mhp->nr_pages - 1); mhp 3026 mm/hugetlb.c unsigned long *mhp; mhp 3040 mm/hugetlb.c mhp = &default_hstate_max_huge_pages; mhp 3042 mm/hugetlb.c mhp = &parsed_hstate->max_huge_pages; mhp 3044 mm/hugetlb.c if (mhp == last_mhp) { mhp 3049 mm/hugetlb.c if (sscanf(s, "%lu", mhp) <= 0) mhp 3050 mm/hugetlb.c *mhp = 0; mhp 3060 mm/hugetlb.c last_mhp = mhp;