All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roland Dreier <rdreier@cisco.com>
To: torvalds@osdl.org
Cc: openib-general@openib.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] please pull infiniband.git
Date: Thu, 02 Nov 2006 14:28:04 -0800	[thread overview]
Message-ID: <adaejsltrez.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 includes various fixes for 2.6.19-rc5:

Erez Zilber (1):
      IB/iser: Start connection after enabling iSER

Jack Morgenstein (1):
      IB/uverbs: Return sq_draining value in query_qp response

Krishna Kumar (1):
      RDMA/cma: rdma_bind_addr() leaks a cma_dev reference count

Michael S. Tsirkin (1):
      IB/mthca: Fix MAD extended header format for MAD_IFC firmware command

Paul Mackerras (1):
      IB/ehca: Fix eHCA driver compilation for uniprocessor

Sean Hefty (1):
      RDMA/addr: Use client registration to fix module unload race

Steve Wise (2):
      IB/amso1100: Use dma_alloc_coherent() instead of kmalloc/dma_map_single
      IB/amso1100: Fix incorrect pr_debug()

 drivers/infiniband/core/addr.c            |   28 ++++++++++++++-
 drivers/infiniband/core/cma.c             |   31 +++++++++++-----
 drivers/infiniband/core/uverbs_cmd.c      |    2 +-
 drivers/infiniband/hw/amso1100/c2_alloc.c |   13 +++----
 drivers/infiniband/hw/amso1100/c2_cq.c    |   18 +++------
 drivers/infiniband/hw/amso1100/c2_rnic.c  |   56 ++++++++++++-----------------
 drivers/infiniband/hw/ehca/ehca_tools.h   |    1 +
 drivers/infiniband/hw/mthca/mthca_cmd.c   |   14 ++++----
 drivers/infiniband/ulp/iser/iscsi_iser.c  |    4 +-
 include/rdma/ib_addr.h                    |   20 ++++++++++-
 include/rdma/ib_user_verbs.h              |    2 +-
 11 files changed, 114 insertions(+), 75 deletions(-)


diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 60d3fbd..e11187e 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -47,6 +47,7 @@ struct addr_req {
 	struct sockaddr src_addr;
 	struct sockaddr dst_addr;
 	struct rdma_dev_addr *addr;
+	struct rdma_addr_client *client;
 	void *context;
 	void (*callback)(int status, struct sockaddr *src_addr,
 			 struct rdma_dev_addr *addr, void *context);
@@ -61,6 +62,26 @@ static LIST_HEAD(req_list);
 static DECLARE_WORK(work, process_req, NULL);
 static struct workqueue_struct *addr_wq;
 
+void rdma_addr_register_client(struct rdma_addr_client *client)
+{
+	atomic_set(&client->refcount, 1);
+	init_completion(&client->comp);
+}
+EXPORT_SYMBOL(rdma_addr_register_client);
+
+static inline void put_client(struct rdma_addr_client *client)
+{
+	if (atomic_dec_and_test(&client->refcount))
+		complete(&client->comp);
+}
+
+void rdma_addr_unregister_client(struct rdma_addr_client *client)
+{
+	put_client(client);
+	wait_for_completion(&client->comp);
+}
+EXPORT_SYMBOL(rdma_addr_unregister_client);
+
 int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
 		     const unsigned char *dst_dev_addr)
 {
@@ -229,6 +250,7 @@ static void process_req(void *data)
 		list_del(&req->list);
 		req->callback(req->status, &req->src_addr, req->addr,
 			      req->context);
+		put_client(req->client);
 		kfree(req);
 	}
 }
@@ -264,7 +286,8 @@ static int addr_resolve_local(struct soc
 	return ret;
 }
 
-int rdma_resolve_ip(struct sockaddr *src_addr, struct sockaddr *dst_addr,
+int rdma_resolve_ip(struct rdma_addr_client *client,
+		    struct sockaddr *src_addr, struct sockaddr *dst_addr,
 		    struct rdma_dev_addr *addr, int timeout_ms,
 		    void (*callback)(int status, struct sockaddr *src_addr,
 				     struct rdma_dev_addr *addr, void *context),
@@ -285,6 +308,8 @@ int rdma_resolve_ip(struct sockaddr *src
 	req->addr = addr;
 	req->callback = callback;
 	req->context = context;
+	req->client = client;
+	atomic_inc(&client->refcount);
 
 	src_in = (struct sockaddr_in *) &req->src_addr;
 	dst_in = (struct sockaddr_in *) &req->dst_addr;
@@ -305,6 +330,7 @@ int rdma_resolve_ip(struct sockaddr *src
 		break;
 	default:
 		ret = req->status;
+		atomic_dec(&client->refcount);
 		kfree(req);
 		break;
 	}
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 9ae4f3a..845090b 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -63,6 +63,7 @@ static struct ib_client cma_client = {
 };
 
 static struct ib_sa_client sa_client;
+static struct rdma_addr_client addr_client;
 static LIST_HEAD(dev_list);
 static LIST_HEAD(listen_any_list);
 static DEFINE_MUTEX(lock);
@@ -1625,8 +1626,8 @@ int rdma_resolve_addr(struct rdma_cm_id
 	if (cma_any_addr(dst_addr))
 		ret = cma_resolve_loopback(id_priv);
 	else
-		ret = rdma_resolve_ip(&id->route.addr.src_addr, dst_addr,
-				      &id->route.addr.dev_addr,
+		ret = rdma_resolve_ip(&addr_client, &id->route.addr.src_addr,
+				      dst_addr, &id->route.addr.dev_addr,
 				      timeout_ms, addr_handler, id_priv);
 	if (ret)
 		goto err;
@@ -1762,22 +1763,29 @@ int rdma_bind_addr(struct rdma_cm_id *id
 
 	if (!cma_any_addr(addr)) {
 		ret = rdma_translate_ip(addr, &id->route.addr.dev_addr);
-		if (!ret) {
-			mutex_lock(&lock);
-			ret = cma_acquire_dev(id_priv);
-			mutex_unlock(&lock);
-		}
 		if (ret)
-			goto err;
+			goto err1;
+
+		mutex_lock(&lock);
+		ret = cma_acquire_dev(id_priv);
+		mutex_unlock(&lock);
+		if (ret)
+			goto err1;
 	}
 
 	memcpy(&id->route.addr.src_addr, addr, ip_addr_size(addr));
 	ret = cma_get_port(id_priv);
 	if (ret)
-		goto err;
+		goto err2;
 
 	return 0;
-err:
+err2:
+	if (!cma_any_addr(addr)) {
+		mutex_lock(&lock);
+		cma_detach_from_dev(id_priv);
+		mutex_unlock(&lock);
+	}
+err1:
 	cma_comp_exch(id_priv, CMA_ADDR_BOUND, CMA_IDLE);
 	return ret;
 }
@@ -2210,6 +2218,7 @@ static int cma_init(void)
 		return -ENOMEM;
 
 	ib_sa_register_client(&sa_client);
+	rdma_addr_register_client(&addr_client);
 
 	ret = ib_register_client(&cma_client);
 	if (ret)
@@ -2217,6 +2226,7 @@ static int cma_init(void)
 	return 0;
 
 err:
+	rdma_addr_unregister_client(&addr_client);
 	ib_sa_unregister_client(&sa_client);
 	destroy_workqueue(cma_wq);
 	return ret;
@@ -2225,6 +2235,7 @@ err:
 static void cma_cleanup(void)
 {
 	ib_unregister_client(&cma_client);
+	rdma_addr_unregister_client(&addr_client);
 	ib_sa_unregister_client(&sa_client);
 	destroy_workqueue(cma_wq);
 	idr_destroy(&sdp_ps);
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index b72c7f6..743247e 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1214,7 +1214,7 @@ ssize_t ib_uverbs_query_qp(struct ib_uve
 	resp.qp_access_flags        = attr->qp_access_flags;
 	resp.pkey_index             = attr->pkey_index;
 	resp.alt_pkey_index         = attr->alt_pkey_index;
-	resp.en_sqd_async_notify    = attr->en_sqd_async_notify;
+	resp.sq_draining            = attr->sq_draining;
 	resp.max_rd_atomic          = attr->max_rd_atomic;
 	resp.max_dest_rd_atomic     = attr->max_dest_rd_atomic;
 	resp.min_rnr_timer          = attr->min_rnr_timer;
diff --git a/drivers/infiniband/hw/amso1100/c2_alloc.c b/drivers/infiniband/hw/amso1100/c2_alloc.c
index 028a60b..0315f99 100644
--- a/drivers/infiniband/hw/amso1100/c2_alloc.c
+++ b/drivers/infiniband/hw/amso1100/c2_alloc.c
@@ -42,13 +42,14 @@ static int c2_alloc_mqsp_chunk(struct c2
 {
 	int i;
 	struct sp_chunk *new_head;
+	dma_addr_t dma_addr;
 
-	new_head = (struct sp_chunk *) __get_free_page(gfp_mask);
+	new_head = dma_alloc_coherent(&c2dev->pcidev->dev, PAGE_SIZE,
+				      &dma_addr, gfp_mask);
 	if (new_head == NULL)
 		return -ENOMEM;
 
-	new_head->dma_addr = dma_map_single(c2dev->ibdev.dma_device, new_head,
-					    PAGE_SIZE, DMA_FROM_DEVICE);
+	new_head->dma_addr = dma_addr;
 	pci_unmap_addr_set(new_head, mapping, new_head->dma_addr);
 
 	new_head->next = NULL;
@@ -80,10 +81,8 @@ void c2_free_mqsp_pool(struct c2_dev *c2
 
 	while (root) {
 		next = root->next;
-		dma_unmap_single(c2dev->ibdev.dma_device,
-				 pci_unmap_addr(root, mapping), PAGE_SIZE,
-			         DMA_FROM_DEVICE);
-		__free_page((struct page *) root);
+		dma_free_coherent(&c2dev->pcidev->dev, PAGE_SIZE, root,
+				  pci_unmap_addr(root, mapping));
 		root = next;
 	}
 }
diff --git a/drivers/infiniband/hw/amso1100/c2_cq.c b/drivers/infiniband/hw/amso1100/c2_cq.c
index 9d7bcc5..05c9154 100644
--- a/drivers/infiniband/hw/amso1100/c2_cq.c
+++ b/drivers/infiniband/hw/amso1100/c2_cq.c
@@ -246,20 +246,17 @@ int c2_arm_cq(struct ib_cq *ibcq, enum i
 
 static void c2_free_cq_buf(struct c2_dev *c2dev, struct c2_mq *mq)
 {
-
-	dma_unmap_single(c2dev->ibdev.dma_device, pci_unmap_addr(mq, mapping),
-			 mq->q_size * mq->msg_size, DMA_FROM_DEVICE);
-	free_pages((unsigned long) mq->msg_pool.host,
-		   get_order(mq->q_size * mq->msg_size));
+	dma_free_coherent(&c2dev->pcidev->dev, mq->q_size * mq->msg_size,
+			  mq->msg_pool.host, pci_unmap_addr(mq, mapping));
 }
 
 static int c2_alloc_cq_buf(struct c2_dev *c2dev, struct c2_mq *mq, int q_size,
 			   int msg_size)
 {
-	unsigned long pool_start;
+	u8 *pool_start;
 
-	pool_start = __get_free_pages(GFP_KERNEL,
-				      get_order(q_size * msg_size));
+	pool_start = dma_alloc_coherent(&c2dev->pcidev->dev, q_size * msg_size,
+					&mq->host_dma, GFP_KERNEL);
 	if (!pool_start)
 		return -ENOMEM;
 
@@ -267,13 +264,10 @@ static int c2_alloc_cq_buf(struct c2_dev
 		       0,		/* index (currently unknown) */
 		       q_size,
 		       msg_size,
-		       (u8 *) pool_start,
+		       pool_start,
 		       NULL,	/* peer (currently unknown) */
 		       C2_MQ_HOST_TARGET);
 
-	mq->host_dma = dma_map_single(c2dev->ibdev.dma_device,
-				      (void *)pool_start,
-				      q_size * msg_size, DMA_FROM_DEVICE);
 	pci_unmap_addr_set(mq, mapping, mq->host_dma);
 
 	return 0;
diff --git a/drivers/infiniband/hw/amso1100/c2_rnic.c b/drivers/infiniband/hw/amso1100/c2_rnic.c
index 30409e1..21d9612 100644
--- a/drivers/infiniband/hw/amso1100/c2_rnic.c
+++ b/drivers/infiniband/hw/amso1100/c2_rnic.c
@@ -517,14 +517,12 @@ int c2_rnic_init(struct c2_dev *c2dev)
 	/* Initialize the Verbs Reply Queue */
 	qsize = be32_to_cpu(readl(mmio_regs + C2_REGS_Q1_QSIZE));
 	msgsize = be32_to_cpu(readl(mmio_regs + C2_REGS_Q1_MSGSIZE));
-	q1_pages = kmalloc(qsize * msgsize, GFP_KERNEL);
+	q1_pages = dma_alloc_coherent(&c2dev->pcidev->dev, qsize * msgsize,
+				      &c2dev->rep_vq.host_dma, GFP_KERNEL);
 	if (!q1_pages) {
 		err = -ENOMEM;
 		goto bail1;
 	}
-	c2dev->rep_vq.host_dma = dma_map_single(c2dev->ibdev.dma_device,
-					        (void *)q1_pages, qsize * msgsize,
-				      		DMA_FROM_DEVICE);
 	pci_unmap_addr_set(&c2dev->rep_vq, mapping, c2dev->rep_vq.host_dma);
 	pr_debug("%s rep_vq va %p dma %llx\n", __FUNCTION__, q1_pages,
 		 (unsigned long long) c2dev->rep_vq.host_dma);
@@ -540,17 +538,15 @@ int c2_rnic_init(struct c2_dev *c2dev)
 	/* Initialize the Asynchronus Event Queue */
 	qsize = be32_to_cpu(readl(mmio_regs + C2_REGS_Q2_QSIZE));
 	msgsize = be32_to_cpu(readl(mmio_regs + C2_REGS_Q2_MSGSIZE));
-	q2_pages = kmalloc(qsize * msgsize, GFP_KERNEL);
+	q2_pages = dma_alloc_coherent(&c2dev->pcidev->dev, qsize * msgsize,
+				      &c2dev->aeq.host_dma, GFP_KERNEL);
 	if (!q2_pages) {
 		err = -ENOMEM;
 		goto bail2;
 	}
-	c2dev->aeq.host_dma = dma_map_single(c2dev->ibdev.dma_device,
-					        (void *)q2_pages, qsize * msgsize,
-				      		DMA_FROM_DEVICE);
 	pci_unmap_addr_set(&c2dev->aeq, mapping, c2dev->aeq.host_dma);
-	pr_debug("%s aeq va %p dma %llx\n", __FUNCTION__, q1_pages,
-		 (unsigned long long) c2dev->rep_vq.host_dma);
+	pr_debug("%s aeq va %p dma %llx\n", __FUNCTION__, q2_pages,
+		 (unsigned long long) c2dev->aeq.host_dma);
 	c2_mq_rep_init(&c2dev->aeq,
 		       2,
 		       qsize,
@@ -597,17 +593,13 @@ int c2_rnic_init(struct c2_dev *c2dev)
       bail4:
 	vq_term(c2dev);
       bail3:
-	dma_unmap_single(c2dev->ibdev.dma_device,
-			 pci_unmap_addr(&c2dev->aeq, mapping),
-			 c2dev->aeq.q_size * c2dev->aeq.msg_size,
-		  	 DMA_FROM_DEVICE);
-	kfree(q2_pages);
+	dma_free_coherent(&c2dev->pcidev->dev,
+			  c2dev->aeq.q_size * c2dev->aeq.msg_size,
+			  q2_pages, pci_unmap_addr(&c2dev->aeq, mapping));
       bail2:
-	dma_unmap_single(c2dev->ibdev.dma_device,
-			 pci_unmap_addr(&c2dev->rep_vq, mapping),
-			 c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
-		  	 DMA_FROM_DEVICE);
-	kfree(q1_pages);
+	dma_free_coherent(&c2dev->pcidev->dev,
+			  c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
+			  q1_pages, pci_unmap_addr(&c2dev->rep_vq, mapping));
       bail1:
 	c2_free_mqsp_pool(c2dev, c2dev->kern_mqsp_pool);
       bail0:
@@ -640,19 +632,17 @@ void c2_rnic_term(struct c2_dev *c2dev)
 	/* Free the verbs request allocator */
 	vq_term(c2dev);
 
-	/* Unmap and free the asynchronus event queue */
-	dma_unmap_single(c2dev->ibdev.dma_device,
-			 pci_unmap_addr(&c2dev->aeq, mapping),
-			 c2dev->aeq.q_size * c2dev->aeq.msg_size,
-		  	 DMA_FROM_DEVICE);
-	kfree(c2dev->aeq.msg_pool.host);
-
-	/* Unmap and free the verbs reply queue */
-	dma_unmap_single(c2dev->ibdev.dma_device,
-			 pci_unmap_addr(&c2dev->rep_vq, mapping),
-			 c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
-		  	 DMA_FROM_DEVICE);
-	kfree(c2dev->rep_vq.msg_pool.host);
+	/* Free the asynchronus event queue */
+	dma_free_coherent(&c2dev->pcidev->dev,
+			  c2dev->aeq.q_size * c2dev->aeq.msg_size,
+			  c2dev->aeq.msg_pool.host,
+			  pci_unmap_addr(&c2dev->aeq, mapping));
+
+	/* Free the verbs reply queue */
+	dma_free_coherent(&c2dev->pcidev->dev,
+			  c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
+			  c2dev->rep_vq.msg_pool.host,
+			  pci_unmap_addr(&c2dev->rep_vq, mapping));
 
 	/* Free the MQ shared pointer pool */
 	c2_free_mqsp_pool(c2dev, c2dev->kern_mqsp_pool);
diff --git a/drivers/infiniband/hw/ehca/ehca_tools.h b/drivers/infiniband/hw/ehca/ehca_tools.h
index 809da3e..973c4b5 100644
--- a/drivers/infiniband/hw/ehca/ehca_tools.h
+++ b/drivers/infiniband/hw/ehca/ehca_tools.h
@@ -63,6 +63,7 @@ #include <asm/abs_addr.h>
 #include <asm/ibmebus.h>
 #include <asm/io.h>
 #include <asm/pgtable.h>
+#include <asm/hvcall.h>
 
 extern int ehca_debug_level;
 
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
index 99a94d7..768df72 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -1820,11 +1820,11 @@ int mthca_MAD_IFC(struct mthca_dev *dev,
 
 #define MAD_IFC_BOX_SIZE      0x400
 #define MAD_IFC_MY_QPN_OFFSET 0x100
-#define MAD_IFC_RQPN_OFFSET   0x104
-#define MAD_IFC_SL_OFFSET     0x108
-#define MAD_IFC_G_PATH_OFFSET 0x109
-#define MAD_IFC_RLID_OFFSET   0x10a
-#define MAD_IFC_PKEY_OFFSET   0x10e
+#define MAD_IFC_RQPN_OFFSET   0x108
+#define MAD_IFC_SL_OFFSET     0x10c
+#define MAD_IFC_G_PATH_OFFSET 0x10d
+#define MAD_IFC_RLID_OFFSET   0x10e
+#define MAD_IFC_PKEY_OFFSET   0x112
 #define MAD_IFC_GRH_OFFSET    0x140
 
 	inmailbox = mthca_alloc_mailbox(dev, GFP_KERNEL);
@@ -1862,7 +1862,7 @@ #define MAD_IFC_GRH_OFFSET    0x140
 
 		val = in_wc->dlid_path_bits |
 			(in_wc->wc_flags & IB_WC_GRH ? 0x80 : 0);
-		MTHCA_PUT(inbox, val,               MAD_IFC_GRH_OFFSET);
+		MTHCA_PUT(inbox, val,               MAD_IFC_G_PATH_OFFSET);
 
 		MTHCA_PUT(inbox, in_wc->slid,       MAD_IFC_RLID_OFFSET);
 		MTHCA_PUT(inbox, in_wc->pkey_index, MAD_IFC_PKEY_OFFSET);
@@ -1870,7 +1870,7 @@ #define MAD_IFC_GRH_OFFSET    0x140
 		if (in_grh)
 			memcpy(inbox + MAD_IFC_GRH_OFFSET, in_grh, 40);
 
-		op_modifier |= 0x10;
+		op_modifier |= 0x4;
 
 		in_modifier |= in_wc->slid << 16;
 	}
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index eb6f98d..9b2041e 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -363,11 +363,11 @@ iscsi_iser_conn_start(struct iscsi_cls_c
 	struct iscsi_conn *conn = cls_conn->dd_data;
 	int err;
 
-	err = iscsi_conn_start(cls_conn);
+	err = iser_conn_set_full_featured_mode(conn);
 	if (err)
 		return err;
 
-	return iser_conn_set_full_featured_mode(conn);
+	return iscsi_conn_start(cls_conn);
 }
 
 static struct iscsi_transport iscsi_iser_transport;
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h
index 81b6230..c094e50 100644
--- a/include/rdma/ib_addr.h
+++ b/include/rdma/ib_addr.h
@@ -36,6 +36,22 @@ #include <linux/netdevice.h>
 #include <linux/socket.h>
 #include <rdma/ib_verbs.h>
 
+struct rdma_addr_client {
+	atomic_t refcount;
+	struct completion comp;
+};
+
+/**
+ * rdma_addr_register_client - Register an address client.
+ */
+void rdma_addr_register_client(struct rdma_addr_client *client);
+
+/**
+ * rdma_addr_unregister_client - Deregister an address client.
+ * @client: Client object to deregister.
+ */
+void rdma_addr_unregister_client(struct rdma_addr_client *client);
+
 struct rdma_dev_addr {
 	unsigned char src_dev_addr[MAX_ADDR_LEN];
 	unsigned char dst_dev_addr[MAX_ADDR_LEN];
@@ -52,6 +68,7 @@ int rdma_translate_ip(struct sockaddr *a
 /**
  * rdma_resolve_ip - Resolve source and destination IP addresses to
  *   RDMA hardware addresses.
+ * @client: Address client associated with request.
  * @src_addr: An optional source address to use in the resolution.  If a
  *   source address is not provided, a usable address will be returned via
  *   the callback.
@@ -64,7 +81,8 @@ int rdma_translate_ip(struct sockaddr *a
  *   or been canceled.  A status of 0 indicates success.
  * @context: User-specified context associated with the call.
  */
-int rdma_resolve_ip(struct sockaddr *src_addr, struct sockaddr *dst_addr,
+int rdma_resolve_ip(struct rdma_addr_client *client,
+		    struct sockaddr *src_addr, struct sockaddr *dst_addr,
 		    struct rdma_dev_addr *addr, int timeout_ms,
 		    void (*callback)(int status, struct sockaddr *src_addr,
 				     struct rdma_dev_addr *addr, void *context),
diff --git a/include/rdma/ib_user_verbs.h b/include/rdma/ib_user_verbs.h
index db1b814..64a721f 100644
--- a/include/rdma/ib_user_verbs.h
+++ b/include/rdma/ib_user_verbs.h
@@ -458,7 +458,7 @@ struct ib_uverbs_query_qp_resp {
 	__u8  cur_qp_state;
 	__u8  path_mtu;
 	__u8  path_mig_state;
-	__u8  en_sqd_async_notify;
+	__u8  sq_draining;
 	__u8  max_rd_atomic;
 	__u8  max_dest_rd_atomic;
 	__u8  min_rnr_timer;

             reply	other threads:[~2006-11-02 22:30 UTC|newest]

Thread overview: 314+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-02 22:28 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-04-02 17:27 ` Roland Dreier
2015-02-20 17:08 Roland Dreier
2015-02-06 21:19 Roland Dreier
2015-02-06 21:19 ` Roland Dreier
2015-02-07 15:58 ` Yann Droneaud
2015-02-03 21:42 Roland Dreier
2015-02-03 21:42 ` Roland Dreier
     [not found] ` <1422999775-32111-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-02-11  0:52   ` Or Gerlitz
2014-12-19  0:03 Roland Dreier
2014-12-19  0:03 ` Roland Dreier
2014-10-16 22:52 Roland Dreier
2014-10-20 23:28 ` Doug Ledford
     [not found]   ` <1413847716.6046.1.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-10-29 18:18     ` Estrin, Alex
     [not found] ` <1413499938-2378-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-11-02 20:06   ` Dave Airlie
2014-11-02 20:06     ` Dave Airlie
2014-11-03  7:15     ` Eli Cohen
     [not found]     ` <CAPM=9tx+Zau+2EhVouEAM0XKxKhgOpEHSUgWhBuWDC8vA7wvig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-03  7:58       ` Sagi Grimberg
2014-11-03  7:58         ` Sagi Grimberg
2014-09-23 21:58 Roland Dreier
     [not found] ` <1411509501-23138-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-09-27 21:19   ` Or Gerlitz
2014-09-27 21:19     ` Or Gerlitz
2014-08-14 16:05 Roland Dreier
2014-08-14 16:05 ` Roland Dreier
2014-07-18 20:40 Roland Dreier
2014-07-18 20:40 ` Roland Dreier
2014-06-10 17:14 Roland Dreier
2014-06-10 17:14 ` Roland Dreier
2014-05-02  0:09 Roland Dreier
2014-05-02  0:09 ` Roland Dreier
2014-04-18 18:40 Roland Dreier
2014-04-18 18:40 ` Roland Dreier
2014-04-03 15:54 Roland Dreier
2014-04-03 15:54 ` Roland Dreier
2014-02-14 17:51 Roland Dreier
2014-02-14 17:51 ` Roland Dreier
2014-01-24 19:43 Roland Dreier
2014-01-24 19:43 ` Roland Dreier
2013-12-23 17:24 Roland Dreier
2013-11-18 18:40 Roland Dreier
     [not found] ` <1384800032-14755-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-11-19  5:35   ` Upinder Malhi (umalhi)
2013-11-19 17:25   ` Or Gerlitz
2013-11-19 17:25     ` Or Gerlitz
2013-10-22 17:22 Roland Dreier
2013-10-14 18:16 Roland Dreier
2013-10-14 18:16 ` Roland Dreier
     [not found] ` <1381774575-8817-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-10-15  0:52   ` Linus Torvalds
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-08-02 16:12 ` Roland Dreier
2013-07-11 23:52 Roland Dreier
2013-07-11 23:52 ` Roland Dreier
     [not found] ` <1373586758-3380-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-12  4:11   ` Or Gerlitz
2013-07-09 17:36 Roland Dreier
     [not found] ` <1373391385-4978-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-10 14:35   ` Sebastian Riemer
2013-07-10 14:35     ` Sebastian Riemer
     [not found]     ` <51DD714D.4080001-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2013-07-10 14:38       ` Roland Dreier
2013-07-10 14:38         ` Roland Dreier
2013-07-10 15:34         ` Bart Van Assche
2013-06-07 22:28 Roland Dreier
2013-06-07 22:28 ` Roland Dreier
2013-05-08 21:20 Roland Dreier
2013-05-08 21:20 ` Roland Dreier
     [not found] ` <1368048037-7958-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-05-09  8:04   ` Or Gerlitz
2013-03-25 16:42 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-26 17:41 ` Roland Dreier
2013-02-07  1:15 Roland Dreier
2013-02-07  1:15 ` Roland Dreier
2012-12-21 21:42 Roland Dreier
2012-12-21 21:42 ` Roland Dreier
2012-12-11  5:59 Roland Dreier
     [not found] ` <1355205581-10573-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-12-11  6:45   ` Or Gerlitz
2012-12-14  9:56 ` Roland Dreier
     [not found]   ` <CAL1RGDWBcrYUZan+4Vsy9hwz=hBND_AGKs+bDTOjes0xDryadQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-14 15:36     ` Linus Torvalds
2012-12-14 15:36       ` Linus Torvalds
     [not found]       ` <CA+55aFz-DC9GFwjOej7dtoeMWAeecUpveAhB7rRbJyODCEAdew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-14 23:57         ` Roland Dreier
2012-12-14 23:57           ` Roland Dreier
2012-10-26 19:55 Roland Dreier
2012-10-26 19:55 ` Roland Dreier
2012-10-05  2:20 Roland Dreier
2012-10-02 16:08 Roland Dreier
2012-10-02 16:08 ` Roland Dreier
2012-09-17 15:57 Roland Dreier
2012-08-17 18:38 Roland Dreier
2012-08-17 18:38 ` Roland Dreier
2012-07-31 20:56 Roland Dreier
2012-07-23 16:17 Roland Dreier
2012-07-23 16:17 ` Roland Dreier
2012-06-24 12:09 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  1:14 ` Roland Dreier
     [not found] ` <1337562868-9887-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-05-21  2:05   ` Stephen Rothwell
2012-05-21  2:05     ` Stephen Rothwell
     [not found]     ` <20120521120526.fcd34b38fa4d21fdfd28728b-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>
2012-05-21  2:35       ` Roland Dreier
2012-05-21  2:35         ` Roland Dreier
     [not found]         ` <CAG4TOxPpNxFvR_8GkAJ6erDBHBUQzQe3ReFKnK6gBkfAYhRMeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-21  3:39           ` Stephen Rothwell
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-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-19 17:11 ` Roland Dreier
     [not found] ` <1332177079-14339-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-03-21 20:33   ` Or Gerlitz
     [not found]     ` <CAJZOPZ+UFp9SWe71dnPxkmHPB4+7R+z=BvWwXiiMf9T0JC9s8A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-21 21:03       ` Christoph Lameter
     [not found]         ` <alpine.DEB.2.00.1203211602380.25567-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-03-21 21:24           ` Or Gerlitz
     [not found]             ` <CAJZOPZJoQtf6cpEMzx8TtLfW8daDBYXsrVZ+2j=Yjs5JK9NQzQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-22 16:10               ` Christoph Lameter
2012-03-26 21:04 ` Tziporet Koren
     [not found]   ` <CD250C48050CFB4D95E78C95F2FDDD6E61A79B2E-LSMZvP3E4uyuSA5JZHE7gA@public.gmane.org>
2012-03-26 21:13     ` Roland Dreier
2012-03-26 21:13       ` Roland Dreier
     [not found]       ` <CAG4TOxPHziBpJ5hAoVCQTJWeR+-uC+2vM9S0aKE-6-B9JCEkWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-27 16:33         ` Tziporet Koren
2012-03-27 16:33           ` Tziporet Koren
2012-02-25  2:32 Roland Dreier
2012-02-25  2:32 ` Roland Dreier
2012-02-07 17:34 Roland Dreier
2012-02-01  6:36 Roland Dreier
2012-02-01  6:36 ` Roland Dreier
2012-01-06 17:38 Roland Dreier
2011-12-19 17:39 Roland Dreier
     [not found] ` <1324316340-29223-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-01-03 19:18   ` Bart Van Assche
     [not found]     ` <CAO+b5-pQmG+ohd=G417A1-0DB8bKBpNEKAtEi0swoyfvaye4xA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-03 19:21       ` Roland Dreier
2011-11-30 17:50 Roland Dreier
2011-11-30 17:50 ` Roland Dreier
2011-11-04 18:26 Roland Dreier
2011-11-04 18:26 ` Roland Dreier
2011-11-01 16:54 Roland Dreier
2011-11-01 16:54 ` Roland Dreier
     [not found] ` <1320166483-21817-1-git-send-email-roland-BHEL68pLQRGGvPXPguhicg@public.gmane.org>
2011-11-08 13:02   ` Or Gerlitz
2011-08-18 15:54 Roland Dreier
2011-08-18 15:54 ` Roland Dreier
2011-07-22 19:08 Roland Dreier
2011-07-22 19:08 ` Roland Dreier
2011-06-21 16:18 Roland Dreier
2011-06-21 16:18 ` Roland Dreier
2011-05-26 16:46 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-25 19:07 ` Roland Dreier
2011-03-23 17:47 Roland Dreier
2011-03-23 17:47 ` Roland Dreier
     [not found] ` <1300902477-6608-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-03-23 18:15   ` Roland Dreier
2011-03-23 18:15     ` Roland Dreier
2011-03-15 18:01 Roland Dreier
2011-03-15 18:01 ` Roland Dreier
2011-02-17 22:26 Roland Dreier
2011-02-17 22:26 ` Roland Dreier
2011-02-03 18:05 Roland Dreier
2011-02-03 18:05 ` Roland Dreier
2011-01-17 21:55 Roland Dreier
2011-01-17 21:55 ` Roland Dreier
2011-01-25 16:23 ` Tziporet Koren
2011-01-11 18:38 Roland Dreier
2011-01-11 18:38 ` Roland Dreier
2010-12-13 21:53 Roland Dreier
2010-12-02 18:57 Roland Dreier
2010-12-02 18:57 ` Roland Dreier
2010-10-26 20:52 Roland Dreier
2010-10-26 20:52 ` Roland Dreier
     [not found] ` <ada4oc8fzi9.fsf-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2010-10-26 23:17   ` Roland Dreier
2010-10-26 23:17     ` Roland Dreier
2010-09-27 16:31 Roland Dreier
2010-09-27 16:31 ` Roland Dreier
2010-09-08 21:45 Roland Dreier
2010-09-08 21:45 ` Roland Dreier
2010-08-09 22:44 Roland Dreier
2010-08-09 22:44 ` Roland Dreier
2010-08-05 21:37 [GIT PULL] Please " Roland Dreier
2010-08-05 21:37 ` Roland Dreier
2010-07-08 16:12 [GIT PULL] please " Roland Dreier
2010-07-08 16:12 ` Roland Dreier
2010-05-27 22:18 Roland Dreier
2010-05-27 22:18 ` Roland Dreier
2010-05-25 16:58 Roland Dreier
2010-05-25 16:58 ` Roland Dreier
2010-05-18  3:37 Roland Dreier
2010-04-09 16:13 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  7:56 ` Roland Dreier
2010-03-02 11:52 ` Tziporet Koren
2010-02-10 20:03 Roland Dreier
2010-02-10 20:03 ` Roland Dreier
2010-01-07 19:30 Roland Dreier
2010-01-07 19:30 ` Roland Dreier
2009-12-16  7:41 Roland Dreier
2009-12-16  7:41 ` Roland Dreier
2009-10-28 18:07 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-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-22 16:26 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-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=adaejsltrez.fsf@cisco.com \
    --to=rdreier@cisco.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=openib-general@openib.org \
    --cc=torvalds@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.