> +int mlx4_ib_modify_xrc_rcv_qp(struct ib_xrcd *ibxrcd, u32 qp_num,
 > +                          struct ib_qp_attr *attr, int attr_mask)
 > +{
 > +    struct mlx4_ib_dev *dev = to_mdev(ibxrcd->device);
 > +    struct mlx4_ib_xrcd *xrcd = to_mxrcd(ibxrcd);
 > +    struct mlx4_qp *mqp;
 > +    int err;
 > +
 > +    if (!(dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_XRC))
 > +            return -ENOSYS;
 > +
 > +    mqp = __mlx4_qp_lookup(dev->dev, qp_num);
 > +    if (unlikely(!mqp)) {
 > +            printk(KERN_WARNING "mlx4_ib_reg_xrc_rcv_qp: unknown QPN 
 > %06x\n",
 > +                   qp_num);
 > +            return -EINVAL;
 > +    }

I don't see any locking here... what protects against the QP from being
destroyed out from under you in another thread?

 - R.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to