diff options
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_mcg.c')
| -rw-r--r-- | drivers/infiniband/hw/mthca/mthca_mcg.c | 14 | 
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_mcg.c b/drivers/infiniband/hw/mthca/mthca_mcg.c index 77bc6c746f4..55ff5e5bcfe 100644 --- a/drivers/infiniband/hw/mthca/mthca_mcg.c +++ b/drivers/infiniband/hw/mthca/mthca_mcg.c @@ -154,10 +154,7 @@ int mthca_multicast_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)  		return PTR_ERR(mailbox);  	mgm = mailbox->buf; -	if (down_interruptible(&dev->mcg_table.sem)) { -		err = -EINTR; -		goto err_sem; -	} +	down(&dev->mcg_table.sem);  	err = find_mgm(dev, gid->raw, mailbox, &hash, &prev, &index);  	if (err) @@ -242,7 +239,7 @@ int mthca_multicast_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)  		mthca_free(&dev->mcg_table.alloc, index);  	}  	up(&dev->mcg_table.sem); - err_sem: +  	mthca_free_mailbox(dev, mailbox);  	return err;  } @@ -263,10 +260,7 @@ int mthca_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)  		return PTR_ERR(mailbox);  	mgm = mailbox->buf; -	if (down_interruptible(&dev->mcg_table.sem)) { -		err = -EINTR; -		goto err_sem; -	} +	down(&dev->mcg_table.sem);  	err = find_mgm(dev, gid->raw, mailbox, &hash, &prev, &index);  	if (err) @@ -372,7 +366,7 @@ int mthca_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)   out:  	up(&dev->mcg_table.sem); - err_sem: +  	mthca_free_mailbox(dev, mailbox);  	return err;  }  |