Lines Matching defs:xrcd
623 struct mlx4_ib_xrcd *xrcd;
629 xrcd = kmalloc(sizeof *xrcd, GFP_KERNEL);
630 if (!xrcd)
633 err = mlx4_xrcd_alloc(to_mdev(ibdev)->dev, &xrcd->xrcdn);
637 xrcd->pd = ib_alloc_pd(ibdev);
638 if (IS_ERR(xrcd->pd)) {
639 err = PTR_ERR(xrcd->pd);
643 xrcd->cq = ib_create_cq(ibdev, NULL, NULL, xrcd, 1, 0);
644 if (IS_ERR(xrcd->cq)) {
645 err = PTR_ERR(xrcd->cq);
649 return &xrcd->ibxrcd;
652 ib_dealloc_pd(xrcd->pd);
654 mlx4_xrcd_free(to_mdev(ibdev)->dev, xrcd->xrcdn);
656 kfree(xrcd);
660 static int mlx4_ib_dealloc_xrcd(struct ib_xrcd *xrcd)
662 ib_destroy_cq(to_mxrcd(xrcd)->cq);
663 ib_dealloc_pd(to_mxrcd(xrcd)->pd);
664 mlx4_xrcd_free(to_mdev(xrcd->device)->dev, to_mxrcd(xrcd)->xrcdn);
665 kfree(xrcd);