smbdirect_mr     2270 fs/cifs/smbdirect.c 	struct smbd_mr *smbdirect_mr;
smbdirect_mr     2273 fs/cifs/smbdirect.c 	list_for_each_entry(smbdirect_mr, &info->mr_list, list) {
smbdirect_mr     2274 fs/cifs/smbdirect.c 		if (smbdirect_mr->state == MR_ERROR) {
smbdirect_mr     2277 fs/cifs/smbdirect.c 			rc = ib_dereg_mr(smbdirect_mr->mr);
smbdirect_mr     2286 fs/cifs/smbdirect.c 			smbdirect_mr->mr = ib_alloc_mr(
smbdirect_mr     2289 fs/cifs/smbdirect.c 			if (IS_ERR(smbdirect_mr->mr)) {
smbdirect_mr     2302 fs/cifs/smbdirect.c 		smbdirect_mr->state = MR_READY;
smbdirect_mr     2341 fs/cifs/smbdirect.c 	struct smbd_mr *smbdirect_mr, *tmp;
smbdirect_mr     2351 fs/cifs/smbdirect.c 		smbdirect_mr = kzalloc(sizeof(*smbdirect_mr), GFP_KERNEL);
smbdirect_mr     2352 fs/cifs/smbdirect.c 		if (!smbdirect_mr)
smbdirect_mr     2354 fs/cifs/smbdirect.c 		smbdirect_mr->mr = ib_alloc_mr(info->pd, info->mr_type,
smbdirect_mr     2356 fs/cifs/smbdirect.c 		if (IS_ERR(smbdirect_mr->mr)) {
smbdirect_mr     2362 fs/cifs/smbdirect.c 		smbdirect_mr->sgl = kcalloc(
smbdirect_mr     2366 fs/cifs/smbdirect.c 		if (!smbdirect_mr->sgl) {
smbdirect_mr     2368 fs/cifs/smbdirect.c 			ib_dereg_mr(smbdirect_mr->mr);
smbdirect_mr     2371 fs/cifs/smbdirect.c 		smbdirect_mr->state = MR_READY;
smbdirect_mr     2372 fs/cifs/smbdirect.c 		smbdirect_mr->conn = info;
smbdirect_mr     2374 fs/cifs/smbdirect.c 		list_add_tail(&smbdirect_mr->list, &info->mr_list);
smbdirect_mr     2381 fs/cifs/smbdirect.c 	kfree(smbdirect_mr);
smbdirect_mr     2383 fs/cifs/smbdirect.c 	list_for_each_entry_safe(smbdirect_mr, tmp, &info->mr_list, list) {
smbdirect_mr     2384 fs/cifs/smbdirect.c 		ib_dereg_mr(smbdirect_mr->mr);
smbdirect_mr     2385 fs/cifs/smbdirect.c 		kfree(smbdirect_mr->sgl);
smbdirect_mr     2386 fs/cifs/smbdirect.c 		kfree(smbdirect_mr);
smbdirect_mr     2450 fs/cifs/smbdirect.c 	struct smbd_mr *smbdirect_mr;
smbdirect_mr     2461 fs/cifs/smbdirect.c 	smbdirect_mr = get_mr(info);
smbdirect_mr     2462 fs/cifs/smbdirect.c 	if (!smbdirect_mr) {
smbdirect_mr     2466 fs/cifs/smbdirect.c 	smbdirect_mr->need_invalidate = need_invalidate;
smbdirect_mr     2467 fs/cifs/smbdirect.c 	smbdirect_mr->sgl_count = num_pages;
smbdirect_mr     2468 fs/cifs/smbdirect.c 	sg_init_table(smbdirect_mr->sgl, num_pages);
smbdirect_mr     2474 fs/cifs/smbdirect.c 		sg_set_page(&smbdirect_mr->sgl[0], pages[0], tailsz, offset);
smbdirect_mr     2480 fs/cifs/smbdirect.c 		&smbdirect_mr->sgl[0], pages[0], PAGE_SIZE - offset, offset);
smbdirect_mr     2483 fs/cifs/smbdirect.c 		sg_set_page(&smbdirect_mr->sgl[i], pages[i], PAGE_SIZE, 0);
smbdirect_mr     2486 fs/cifs/smbdirect.c 	sg_set_page(&smbdirect_mr->sgl[i], pages[i],
smbdirect_mr     2491 fs/cifs/smbdirect.c 	smbdirect_mr->dir = dir;
smbdirect_mr     2492 fs/cifs/smbdirect.c 	rc = ib_dma_map_sg(info->id->device, smbdirect_mr->sgl, num_pages, dir);
smbdirect_mr     2499 fs/cifs/smbdirect.c 	rc = ib_map_mr_sg(smbdirect_mr->mr, smbdirect_mr->sgl, num_pages,
smbdirect_mr     2508 fs/cifs/smbdirect.c 	ib_update_fast_reg_key(smbdirect_mr->mr,
smbdirect_mr     2509 fs/cifs/smbdirect.c 		ib_inc_rkey(smbdirect_mr->mr->rkey));
smbdirect_mr     2510 fs/cifs/smbdirect.c 	reg_wr = &smbdirect_mr->wr;
smbdirect_mr     2512 fs/cifs/smbdirect.c 	smbdirect_mr->cqe.done = register_mr_done;
smbdirect_mr     2513 fs/cifs/smbdirect.c 	reg_wr->wr.wr_cqe = &smbdirect_mr->cqe;
smbdirect_mr     2516 fs/cifs/smbdirect.c 	reg_wr->mr = smbdirect_mr->mr;
smbdirect_mr     2517 fs/cifs/smbdirect.c 	reg_wr->key = smbdirect_mr->mr->rkey;
smbdirect_mr     2529 fs/cifs/smbdirect.c 		return smbdirect_mr;
smbdirect_mr     2536 fs/cifs/smbdirect.c 	ib_dma_unmap_sg(info->id->device, smbdirect_mr->sgl,
smbdirect_mr     2537 fs/cifs/smbdirect.c 		smbdirect_mr->sgl_count, smbdirect_mr->dir);
smbdirect_mr     2540 fs/cifs/smbdirect.c 	smbdirect_mr->state = MR_ERROR;
smbdirect_mr     2551 fs/cifs/smbdirect.c 	struct smbd_mr *smbdirect_mr;
smbdirect_mr     2555 fs/cifs/smbdirect.c 	smbdirect_mr = container_of(cqe, struct smbd_mr, cqe);
smbdirect_mr     2556 fs/cifs/smbdirect.c 	smbdirect_mr->state = MR_INVALIDATED;
smbdirect_mr     2559 fs/cifs/smbdirect.c 		smbdirect_mr->state = MR_ERROR;
smbdirect_mr     2561 fs/cifs/smbdirect.c 	complete(&smbdirect_mr->invalidate_done);
smbdirect_mr     2570 fs/cifs/smbdirect.c int smbd_deregister_mr(struct smbd_mr *smbdirect_mr)
smbdirect_mr     2573 fs/cifs/smbdirect.c 	struct smbd_connection *info = smbdirect_mr->conn;
smbdirect_mr     2576 fs/cifs/smbdirect.c 	if (smbdirect_mr->need_invalidate) {
smbdirect_mr     2578 fs/cifs/smbdirect.c 		wr = &smbdirect_mr->inv_wr;
smbdirect_mr     2580 fs/cifs/smbdirect.c 		smbdirect_mr->cqe.done = local_inv_done;
smbdirect_mr     2581 fs/cifs/smbdirect.c 		wr->wr_cqe = &smbdirect_mr->cqe;
smbdirect_mr     2583 fs/cifs/smbdirect.c 		wr->ex.invalidate_rkey = smbdirect_mr->mr->rkey;
smbdirect_mr     2586 fs/cifs/smbdirect.c 		init_completion(&smbdirect_mr->invalidate_done);
smbdirect_mr     2593 fs/cifs/smbdirect.c 		wait_for_completion(&smbdirect_mr->invalidate_done);
smbdirect_mr     2594 fs/cifs/smbdirect.c 		smbdirect_mr->need_invalidate = false;
smbdirect_mr     2600 fs/cifs/smbdirect.c 		smbdirect_mr->state = MR_INVALIDATED;
smbdirect_mr     2602 fs/cifs/smbdirect.c 	if (smbdirect_mr->state == MR_INVALIDATED) {
smbdirect_mr     2604 fs/cifs/smbdirect.c 			info->id->device, smbdirect_mr->sgl,
smbdirect_mr     2605 fs/cifs/smbdirect.c 			smbdirect_mr->sgl_count,
smbdirect_mr     2606 fs/cifs/smbdirect.c 			smbdirect_mr->dir);
smbdirect_mr     2607 fs/cifs/smbdirect.c 		smbdirect_mr->state = MR_READY;