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 [email protected] ;) 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); _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
