|
@@ -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;
|
|
|
}
|