[ewg] Re: [openfabrics-ewg] new OFED 1.2 package
Michael S. Tsirkin
mst at mellanox.co.il
Sun Feb 25 09:08:16 PST 2007
> Quoting r. Woodruff, Robert J <robert.j.woodruff at intel.com>:
> Subject: Re: [openfabrics-ewg] new OFED 1.2 package
>
> I am also still seeing the issue with the rdma_cm abi_version on RedHat
> EL4-U3,
> bug number, 347. The bug report contains the patch that should fix this.
OK, here's a somewhat cleaned-up patch. However, I have a question: should not the
module cleanup function remove ucma_class and class_attr_abi_version that were
created at module initialization?
----
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index e2e8d32..e9e024e 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -847,13 +847,12 @@ static struct miscdevice ucma_misc = {
.fops = &ucma_fops,
};
-static ssize_t show_abi_version(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static struct class *ucma_class;
+static ssize_t show_abi_version(struct class *class_dev, char *buf)
{
return sprintf(buf, "%d\n", RDMA_USER_CM_ABI_VERSION);
}
-static DEVICE_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
+static CLASS_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
static int __init ucma_init(void)
{
@@ -863,7 +862,13 @@ static int __init ucma_init(void)
if (ret)
return ret;
- ret = device_create_file(ucma_misc.this_device, &dev_attr_abi_version);
+ ucma_class = class_create(THIS_MODULE, "infiniband_ucma");
+ if (IS_ERR(ucma_class)) {
+ printk(KERN_ERR "rdma_ucm: couldn't create class infiniband_ucma\n");
+ goto err;
+ }
+
+ ret = class_create_file(ucma_class, &class_attr_abi_version);
if (ret) {
printk(KERN_ERR "rdma_ucm: couldn't create abi_version attr\n");
goto err;
@@ -876,7 +881,6 @@ err:
static void __exit ucma_cleanup(void)
{
- device_remove_file(ucma_misc.this_device, &dev_attr_abi_version);
misc_deregister(&ucma_misc);
idr_destroy(&ctx_idr);
}
--
MST
More information about the ewg
mailing list