gid_attr_group
struct gid_attr_group *gid_attr_group;
gid_attr_group = kzalloc_flex(*gid_attr_group, attrs_list,
if (!gid_attr_group)
gid_attr_group->port = port;
kobject_init(&gid_attr_group->kobj, &gid_attr_type);
ret = alloc_port_table_group("ndevs", &gid_attr_group->groups[0],
gid_attr_group->attrs_list,
gid_attr_group->groups_list[0] = &gid_attr_group->groups[0];
"types", &gid_attr_group->groups[1],
gid_attr_group->attrs_list + attr->gid_tbl_len,
gid_attr_group->groups_list[1] = &gid_attr_group->groups[1];
ret = kobject_add(&gid_attr_group->kobj, &port->kobj, "gid_attrs");
ret = sysfs_create_groups(&gid_attr_group->kobj,
gid_attr_group->groups_list);
port->gid_attr_group = gid_attr_group;
kobject_del(&gid_attr_group->kobj);
kobject_put(&gid_attr_group->kobj);
struct gid_attr_group *gid_attr_group = port->gid_attr_group;
if (!gid_attr_group)
sysfs_remove_groups(&gid_attr_group->kobj, gid_attr_group->groups_list);
kobject_del(&gid_attr_group->kobj);
kobject_put(&gid_attr_group->kobj);
struct ib_port *p = container_of(kobj, struct gid_attr_group,
struct gid_attr_group *gid_attr_group;
struct gid_attr_group *gid_attr_group =
container_of(kobj, struct gid_attr_group, kobj);
for (i = 0; i != ARRAY_SIZE(gid_attr_group->groups); i++)
kfree(gid_attr_group->groups[i].attrs);
kfree(gid_attr_group);