On Mon, 21 Dec 2015, Hal Rosenstock wrote:

> > Don't we need to change all the sysfs_remove_groups to use 
> > get_counter_table as
> > well?
>
> Looks like it to me too. Good catch.

Fix follows:

From: Christoph Lameter <c...@linux.com>
Subject: Fix sysfs entry removal by storing the table format in  pma_table

Store the table being used in the ib_port structure and use it when sysfs
entries have to be removed.

Signed-off-by: Christoph Lameter <c...@linux.com>

Index: linux/drivers/infiniband/core/sysfs.c
===================================================================
--- linux.orig/drivers/infiniband/core/sysfs.c
+++ linux/drivers/infiniband/core/sysfs.c
@@ -47,6 +47,7 @@ struct ib_port {
        struct attribute_group gid_group;
        struct attribute_group pkey_group;
        u8                     port_num;
+       struct attribute_group *pma_table;
 };

 struct port_attribute {
@@ -651,7 +652,8 @@ static int add_port(struct ib_device *de
                return ret;
        }

-       ret = sysfs_create_group(&p->kobj, get_counter_table(device));
+       p->pma_table = get_counter_table(device);
+       ret = sysfs_create_group(&p->kobj, p->pma_table);
        if (ret)
                goto err_put;

@@ -710,7 +712,7 @@ err_free_gid:
        p->gid_group.attrs = NULL;

 err_remove_pma:
-       sysfs_remove_group(&p->kobj, &pma_group);
+       sysfs_remove_group(&p->kobj, p->pma_table);

 err_put:
        kobject_put(&p->kobj);
@@ -923,7 +925,7 @@ static void free_port_list_attributes(st
        list_for_each_entry_safe(p, t, &device->port_list, entry) {
                struct ib_port *port = container_of(p, struct ib_port, kobj);
                list_del(&p->entry);
-               sysfs_remove_group(p, &pma_group);
+               sysfs_remove_group(p, port->pma_table);
                sysfs_remove_group(p, &port->pkey_group);
                sysfs_remove_group(p, &port->gid_group);
                kobject_put(p);
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to