From: Roland Dreier <rdreier@cisco.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, general@lists.openfabrics.org
Subject: [GIT PULL] please pull infiniband.git
Date: Fri, 22 Jun 2007 09:26:05 -0700 [thread overview]
Message-ID: <ada1wg42bxe.fsf@cisco.com> (raw)
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few fixes for crashes/deadlocks as a well as a few
other small, safe fixes:
Jack Morgenstein (1):
IB/mlx4: Correct max_srq_wr returned from mlx4_ib_query_device()
Michael S. Tsirkin (2):
IPoIB/cm: Initialize RX before moving QP to RTR
IPoIB/cm: Fix interoperability when MTU doesn't match
Roland Dreier (2):
IB/umem: Fix possible hang on process exit
IPoIB/cm: Remove dead definition of struct ipoib_cm_id
drivers/infiniband/core/umem.c | 16 ++++++-----
drivers/infiniband/hw/mlx4/main.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 42 ++++++++++++++----------------
3 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index b4aec51..d40652a 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -225,13 +225,15 @@ void ib_umem_release(struct ib_umem *umem)
* up here and not be able to take the mmap_sem. In that case
* we defer the vm_locked accounting to the system workqueue.
*/
- if (context->closing && !down_write_trylock(&mm->mmap_sem)) {
- INIT_WORK(&umem->work, ib_umem_account);
- umem->mm = mm;
- umem->diff = diff;
-
- schedule_work(&umem->work);
- return;
+ if (context->closing) {
+ if (!down_write_trylock(&mm->mmap_sem)) {
+ INIT_WORK(&umem->work, ib_umem_account);
+ umem->mm = mm;
+ umem->diff = diff;
+
+ schedule_work(&umem->work);
+ return;
+ }
} else
down_write(&mm->mmap_sem);
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index 1095c82..c591616 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -120,7 +120,7 @@ static int mlx4_ib_query_device(struct ib_device *ibdev,
props->max_qp_init_rd_atom = dev->dev->caps.max_qp_init_rdma;
props->max_res_rd_atom = props->max_qp_rd_atom * props->max_qp;
props->max_srq = dev->dev->caps.num_srqs - dev->dev->caps.reserved_srqs;
- props->max_srq_wr = dev->dev->caps.max_srq_wqes;
+ props->max_srq_wr = dev->dev->caps.max_srq_wqes - 1;
props->max_srq_sge = dev->dev->caps.max_srq_sge;
props->local_ca_ack_delay = dev->dev->caps.local_ca_ack_delay;
props->atomic_cap = dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_ATOMIC ?
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 076a0bb..5ffc464 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -56,13 +56,6 @@ MODULE_PARM_DESC(cm_data_debug_level,
#define IPOIB_CM_RX_DELAY (3 * 256 * HZ)
#define IPOIB_CM_RX_UPDATE_MASK (0x3)
-struct ipoib_cm_id {
- struct ib_cm_id *id;
- int flags;
- u32 remote_qpn;
- u32 remote_mtu;
-};
-
static struct ib_qp_attr ipoib_cm_err_attr = {
.qp_state = IB_QPS_ERR
};
@@ -309,6 +302,11 @@ static int ipoib_cm_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even
return -ENOMEM;
p->dev = dev;
p->id = cm_id;
+ cm_id->context = p;
+ p->state = IPOIB_CM_RX_LIVE;
+ p->jiffies = jiffies;
+ INIT_LIST_HEAD(&p->list);
+
p->qp = ipoib_cm_create_rx_qp(dev, p);
if (IS_ERR(p->qp)) {
ret = PTR_ERR(p->qp);
@@ -320,24 +318,24 @@ static int ipoib_cm_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even
if (ret)
goto err_modify;
+ spin_lock_irq(&priv->lock);
+ queue_delayed_work(ipoib_workqueue,
+ &priv->cm.stale_task, IPOIB_CM_RX_DELAY);
+ /* Add this entry to passive ids list head, but do not re-add it
+ * if IB_EVENT_QP_LAST_WQE_REACHED has moved it to flush list. */
+ p->jiffies = jiffies;
+ if (p->state == IPOIB_CM_RX_LIVE)
+ list_move(&p->list, &priv->cm.passive_ids);
+ spin_unlock_irq(&priv->lock);
+
ret = ipoib_cm_send_rep(dev, cm_id, p->qp, &event->param.req_rcvd, psn);
if (ret) {
ipoib_warn(priv, "failed to send REP: %d\n", ret);
- goto err_rep;
+ if (ib_modify_qp(p->qp, &ipoib_cm_err_attr, IB_QP_STATE))
+ ipoib_warn(priv, "unable to move qp to error state\n");
}
-
- cm_id->context = p;
- p->jiffies = jiffies;
- p->state = IPOIB_CM_RX_LIVE;
- spin_lock_irq(&priv->lock);
- if (list_empty(&priv->cm.passive_ids))
- queue_delayed_work(ipoib_workqueue,
- &priv->cm.stale_task, IPOIB_CM_RX_DELAY);
- list_add(&p->list, &priv->cm.passive_ids);
- spin_unlock_irq(&priv->lock);
return 0;
-err_rep:
err_modify:
ib_destroy_qp(p->qp);
err_qp:
@@ -754,9 +752,9 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even
p->mtu = be32_to_cpu(data->mtu);
- if (p->mtu < priv->dev->mtu + IPOIB_ENCAP_LEN) {
- ipoib_warn(priv, "Rejecting connection: mtu %d < device mtu %d + 4\n",
- p->mtu, priv->dev->mtu);
+ if (p->mtu <= IPOIB_ENCAP_LEN) {
+ ipoib_warn(priv, "Rejecting connection: mtu %d <= %d\n",
+ p->mtu, IPOIB_ENCAP_LEN);
return -EINVAL;
}
next reply other threads:[~2007-06-22 16:26 UTC|newest]
Thread overview: 223+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-22 16:26 Roland Dreier [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-04-22 17:08 [GIT PULL] please pull infiniband.git Roland Dreier
2015-04-02 17:27 Roland Dreier
2015-02-20 17:08 Roland Dreier
2015-02-06 21:19 Roland Dreier
2015-02-07 15:58 ` Yann Droneaud
2015-02-03 21:42 Roland Dreier
2014-12-19 0:03 Roland Dreier
2014-10-16 22:52 Roland Dreier
2014-10-20 23:28 ` Doug Ledford
2014-11-02 20:06 ` Dave Airlie
2014-11-03 7:15 ` Eli Cohen
2014-11-03 7:58 ` Sagi Grimberg
2014-09-23 21:58 Roland Dreier
2014-09-27 21:19 ` Or Gerlitz
2014-08-14 16:05 Roland Dreier
2014-07-18 20:40 Roland Dreier
2014-06-10 17:14 Roland Dreier
2014-05-02 0:09 Roland Dreier
2014-04-18 18:40 Roland Dreier
2014-04-03 15:54 Roland Dreier
2014-02-14 17:51 Roland Dreier
2014-01-24 19:43 Roland Dreier
2013-12-23 17:24 Roland Dreier
2013-11-18 18:40 Roland Dreier
2013-11-19 17:25 ` Or Gerlitz
2013-10-22 17:22 Roland Dreier
2013-10-14 18:16 Roland Dreier
2013-10-15 0:52 ` Linus Torvalds
2013-10-15 17:48 ` Roland Dreier
2013-09-04 17:03 Roland Dreier
2013-09-05 0:31 ` Stephen Rothwell
2013-09-05 16:42 ` Linus Torvalds
2013-09-05 16:43 ` David Miller
2013-08-02 16:12 Roland Dreier
2013-07-11 23:52 Roland Dreier
2013-07-09 17:36 Roland Dreier
2013-07-10 14:35 ` Sebastian Riemer
2013-07-10 14:38 ` Roland Dreier
2013-07-10 15:34 ` Bart Van Assche
2013-06-07 22:28 Roland Dreier
2013-05-08 21:20 Roland Dreier
2013-03-25 16:42 Roland Dreier
2013-04-05 15:56 ` David Woodhouse
2013-02-26 17:41 Roland Dreier
2013-02-07 1:15 Roland Dreier
2012-12-21 21:42 Roland Dreier
2012-12-11 5:59 Roland Dreier
2012-12-14 9:56 ` Roland Dreier
2012-12-14 15:36 ` Linus Torvalds
2012-12-14 23:57 ` Roland Dreier
2012-10-26 19:55 Roland Dreier
2012-10-05 2:20 Roland Dreier
2012-10-02 16:08 Roland Dreier
2012-09-17 15:57 Roland Dreier
2012-08-17 18:38 Roland Dreier
2012-07-23 16:17 Roland Dreier
2012-06-24 12:09 Roland Dreier
2012-06-25 14:11 ` Tziporet Koren
2012-05-21 1:14 Roland Dreier
2012-05-21 2:05 ` Stephen Rothwell
2012-05-21 2:35 ` Roland Dreier
2012-05-21 3:39 ` Stephen Rothwell
2012-05-21 16:07 ` Roland Dreier
2012-06-06 17:44 ` Roland Dreier
2012-04-26 17:39 Roland Dreier
2012-04-12 23:45 Roland Dreier
2012-04-11 20:07 Roland Dreier
2012-03-19 17:11 Roland Dreier
2012-03-26 21:04 ` Tziporet Koren
2012-03-26 21:13 ` Roland Dreier
2012-03-27 16:33 ` Tziporet Koren
2012-02-25 2:32 Roland Dreier
2012-02-07 17:34 Roland Dreier
2012-02-01 6:36 Roland Dreier
2012-01-06 17:38 Roland Dreier
2011-12-19 17:39 Roland Dreier
2011-11-30 17:50 Roland Dreier
2011-11-04 18:26 Roland Dreier
2011-11-01 16:54 Roland Dreier
2011-08-18 15:54 Roland Dreier
2011-07-22 19:08 Roland Dreier
2011-06-21 16:18 Roland Dreier
2011-05-26 16:46 Roland Dreier
2011-05-19 18:17 Roland Dreier
2011-03-25 19:07 Roland Dreier
2011-03-23 17:47 Roland Dreier
2011-03-23 18:15 ` Roland Dreier
2011-03-15 18:01 Roland Dreier
2011-02-17 22:26 Roland Dreier
2011-02-03 18:05 Roland Dreier
2011-01-17 21:55 Roland Dreier
2011-01-25 16:23 ` Tziporet Koren
2011-01-11 18:38 Roland Dreier
2010-12-13 21:53 Roland Dreier
2010-12-02 18:57 Roland Dreier
2010-10-26 20:52 Roland Dreier
2010-10-26 23:17 ` Roland Dreier
2010-09-27 16:31 Roland Dreier
2010-09-08 21:45 Roland Dreier
2010-08-09 22:44 Roland Dreier
2010-08-05 21:37 [GIT PULL] Please " Roland Dreier
2010-07-08 16:12 [GIT PULL] please " Roland Dreier
2010-05-27 22:18 Roland Dreier
2010-05-25 16:58 Roland Dreier
2010-05-18 3:37 Roland Dreier
2010-04-09 16:13 Roland Dreier
2010-03-12 18:56 Roland Dreier
2010-03-02 7:56 Roland Dreier
2010-03-02 11:52 ` Tziporet Koren
2010-02-10 20:03 Roland Dreier
2010-01-07 19:30 Roland Dreier
2009-12-16 7:41 Roland Dreier
2009-10-28 18:07 Roland Dreier
2009-10-09 17:08 Roland Dreier
2009-09-24 19:45 Roland Dreier
2009-09-11 4:23 Roland Dreier
2009-07-14 18:48 Roland Dreier
2009-06-23 17:39 Roland Dreier
2009-06-14 20:47 Roland Dreier
2009-05-13 22:18 Roland Dreier
2009-04-28 23:03 Roland Dreier
2009-04-09 21:58 Roland Dreier
2009-03-25 4:05 Roland Dreier
2009-01-16 23:07 Roland Dreier
2009-01-13 3:40 Roland Dreier
2008-12-30 23:38 Roland Dreier
2008-12-25 15:21 Roland Dreier
2008-12-01 18:16 Roland Dreier
2008-11-04 21:37 Roland Dreier
2008-10-23 4:37 Roland Dreier
2008-10-10 0:48 Roland Dreier
2008-09-17 16:40 Roland Dreier
2008-08-19 22:03 Roland Dreier
2008-08-12 20:55 Roland Dreier
2008-08-07 21:15 Roland Dreier
2008-07-26 21:02 Roland Dreier
2008-07-24 15:41 Roland Dreier
2008-07-15 6:51 Roland Dreier
2008-07-08 21:41 Roland Dreier
2008-06-23 19:23 Roland Dreier
2008-06-18 22:38 Roland Dreier
2008-06-09 20:10 Roland Dreier
2008-06-06 18:26 Roland Dreier
2008-05-23 17:57 Roland Dreier
2008-05-07 19:17 Roland Dreier
2008-05-05 23:00 Roland Dreier
2008-05-01 3:46 Roland Dreier
2008-04-29 20:57 Roland Dreier
2008-04-22 1:26 Roland Dreier
2008-04-17 14:53 Roland Dreier
2008-04-19 8:16 ` Ingo Molnar
2008-03-21 21:02 Roland Dreier
2008-03-13 20:15 Roland Dreier
2008-03-11 4:33 Roland Dreier
2008-02-29 22:06 Roland Dreier
2008-02-27 0:27 Roland Dreier
2008-02-19 18:51 Roland Dreier
2008-02-18 20:35 Roland Dreier
2008-02-14 23:31 Roland Dreier
2008-02-11 22:25 Roland Dreier
2008-02-08 23:16 Roland Dreier
2008-02-05 4:49 Roland Dreier
2008-01-16 22:46 Roland Dreier
2008-01-08 20:25 Roland Dreier
2007-12-13 17:39 Roland Dreier
2007-12-01 4:03 Roland Dreier
2007-11-27 6:21 Roland Dreier
2007-11-14 16:23 Roland Dreier
2007-10-30 22:17 Roland Dreier
2007-10-23 16:30 Roland Dreier
2007-09-23 20:06 Roland Dreier
2007-07-30 20:18 Roland Dreier
2007-07-21 4:56 Roland Dreier
2007-07-18 22:52 Roland Dreier
2007-07-12 23:07 Roland Dreier
2007-07-03 3:50 Roland Dreier
2007-06-18 15:49 Roland Dreier
2007-06-08 14:22 Roland Dreier
2007-05-29 23:20 Roland Dreier
2007-05-25 22:06 Roland Dreier
2007-05-21 20:51 Roland Dreier
2007-05-14 21:18 Roland Dreier
2007-05-09 1:06 Roland Dreier
2007-05-07 4:19 Roland Dreier
2007-04-26 18:42 Roland Dreier
2007-04-16 21:16 Roland Dreier
2007-04-12 17:52 Roland Dreier
2007-04-10 17:43 Roland Dreier
2007-03-28 17:25 Roland Dreier
2007-03-22 21:39 Roland Dreier
2007-03-08 23:50 Roland Dreier
2007-02-26 21:05 Roland Dreier
2007-02-16 23:48 Roland Dreier
2007-02-13 0:18 Roland Dreier
2007-02-05 10:15 Roland Dreier
2007-01-23 15:10 Roland Dreier
2007-01-09 22:18 Roland Dreier
2007-01-08 4:29 Roland Dreier
2006-12-16 4:57 Roland Dreier
2006-11-29 23:37 Roland Dreier
2006-11-20 18:44 Roland Dreier
2006-11-13 17:42 Roland Dreier
2006-11-02 22:28 Roland Dreier
2006-10-17 21:44 Roland Dreier
2006-10-10 21:03 Roland Dreier
2006-10-02 21:57 Roland Dreier
2006-09-28 18:20 [GIT PULL] Please " Roland Dreier
2006-09-22 22:37 [GIT PULL] please " Roland Dreier
2006-09-14 20:59 Roland Dreier
2006-09-01 0:29 Roland Dreier
2006-08-23 23:25 Roland Dreier
2006-08-24 1:09 ` Greg KH
2006-08-03 18:07 Roland Dreier
2006-07-24 16:50 Roland Dreier
2006-06-22 16:22 Roland Dreier
2006-06-18 11:49 Roland Dreier
2006-06-13 18:19 [git pull] " Roland Dreier
2006-06-05 17:21 Roland Dreier
2006-05-26 0:09 Roland Dreier
2006-05-23 21:05 Roland Dreier
2006-05-18 19:33 [git pull] Please " Roland Dreier
2006-05-12 22:07 Roland Dreier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ada1wg42bxe.fsf@cisco.com \
--to=rdreier@cisco.com \
--cc=general@lists.openfabrics.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).