On 12/21/2015 2:47 PM, ira.weiny wrote:
> On Mon, Dec 21, 2015 at 01:31:31PM -0600, Christoph Lameter wrote:
>> 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>
> 
> Reviewed-by: Ira Weiny <ira.we...@intel.com>

Reviewed-by: Hal Rosenstock <h...@mellanox.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