[openib-general] please test kernel 2.6.15-rc1

Roland Dreier rolandd at cisco.com
Sat Nov 12 20:46:40 PST 2005


As you might have noticed, Linus just released kernel 2.6.15-rc1.
This is the end of the free-for-all merge window for kernel 2.6.15
and only fixes are supposed to be merged from now on, so it's a good
time to start testing the kernel.

It would be extremely useful if lots of people tested the IB drivers
in the upstream kernel.  In other words, please try 2.6.15-rc1 out
without replacing drivers/infiniband with a subversion tree -- just
build yourself a stock kernel and see how it works.  I'd like to make
sure that the in-tree IB support works well, and that I didn't leave
out a fixes or screw up a merge.

You can report any IB problems to openib-general, and report all the
other problems to linux-kernel at vger.kernel.org ;)


On a related note, I just committed the following change to
subversion, which allows the svn tree to be compiled against both
2.6.14 and 2.6.15-rc1 (or later) trees -- now that 2.6.15-rc1 is out,
LINUX_VERSION_CODE has changed from 2.6.14 so this sort of hack is now
possible.

Thanks,
  Roland

--- infiniband/include/rdma/ib_verbs.h	(revision 4024)
+++ infiniband/include/rdma/ib_verbs.h	(working copy)
@@ -48,6 +48,14 @@
 #include <asm/scatterlist.h>
 #include <asm/uaccess.h>
 
+/* XXX remove this compatibility hack when 2.6.15 is released */
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
+#define class_device_create(cls, parent, devt, device, fmt, arg...) \
+	class_device_create(cls, devt, device, fmt, ## arg)
+#endif /* XXX end of hack */
+
 union ib_gid {
 	u8	raw[16];
 	struct {
--- infiniband/core/uverbs_main.c	(revision 4024)
+++ infiniband/core/uverbs_main.c	(working copy)
@@ -448,7 +448,6 @@ void ib_uverbs_cq_event_handler(struct i
 	ib_uverbs_async_handler(uobj->uverbs_file, uobj->uobject.user_handle,
 				event->event, &uobj->async_list,
 				&uobj->async_events_reported);
-				
 }
 
 void ib_uverbs_qp_event_handler(struct ib_event *event, void *context_ptr)
@@ -752,7 +751,8 @@ static void ib_uverbs_add_one(struct ib_
 	if (cdev_add(uverbs_dev->dev, IB_UVERBS_BASE_DEV + uverbs_dev->devnum, 1))
 		goto err_cdev;
 
-	uverbs_dev->class_dev = class_device_create(uverbs_class, uverbs_dev->dev->dev,
+	uverbs_dev->class_dev = class_device_create(uverbs_class, NULL,
+						    uverbs_dev->dev->dev,
 						    device->dma_device,
 						    "uverbs%d", uverbs_dev->devnum);
 	if (IS_ERR(uverbs_dev->class_dev))
--- infiniband/core/user_mad.c	(revision 4028)
+++ infiniband/core/user_mad.c	(working copy)
@@ -786,7 +786,7 @@ static int ib_umad_init_port(struct ib_d
 	if (cdev_add(port->dev, base_dev + port->dev_num, 1))
 		goto err_cdev;
 
-	port->class_dev = class_device_create(umad_class, port->dev->dev,
+	port->class_dev = class_device_create(umad_class, NULL, port->dev->dev,
 					      device->dma_device,
 					      "umad%d", port->dev_num);
 	if (IS_ERR(port->class_dev))
@@ -806,7 +806,7 @@ static int ib_umad_init_port(struct ib_d
 	if (cdev_add(port->sm_dev, base_dev + port->dev_num + IB_UMAD_MAX_PORTS, 1))
 		goto err_sm_cdev;
 
-	port->sm_class_dev = class_device_create(umad_class, port->sm_dev->dev,
+	port->sm_class_dev = class_device_create(umad_class, NULL, port->sm_dev->dev,
 						 device->dma_device,
 						 "issm%d", port->dev_num);
 	if (IS_ERR(port->sm_class_dev))
--- infiniband/core/uat.c	(revision 4024)
+++ infiniband/core/uat.c	(working copy)
@@ -831,7 +831,7 @@ static int __init ib_uat_init(void)
 		goto err_class;
 	}
 
-	class_device_create(ib_uat_class, IB_UAT_DEV, NULL, "uat");
+	class_device_create(ib_uat_class, NULL, IB_UAT_DEV, NULL, "uat");
 	
 	idr_init(&ctx_id_table);
 	init_MUTEX(&ctx_id_mutex);



More information about the general mailing list