|
@@ -362,10 +362,13 @@ static struct attribute *chp_attrs[] = {
|
|
|
&dev_attr_shared.attr,
|
|
|
NULL,
|
|
|
};
|
|
|
-
|
|
|
static struct attribute_group chp_attr_group = {
|
|
|
.attrs = chp_attrs,
|
|
|
};
|
|
|
+static const struct attribute_group *chp_attr_groups[] = {
|
|
|
+ &chp_attr_group,
|
|
|
+ NULL,
|
|
|
+};
|
|
|
|
|
|
static void chp_release(struct device *dev)
|
|
|
{
|
|
@@ -397,6 +400,7 @@ int chp_new(struct chp_id chpid)
|
|
|
chp->chpid = chpid;
|
|
|
chp->state = 1;
|
|
|
chp->dev.parent = &channel_subsystems[chpid.cssid]->device;
|
|
|
+ chp->dev.groups = chp_attr_groups;
|
|
|
chp->dev.release = chp_release;
|
|
|
mutex_init(&chp->lock);
|
|
|
|
|
@@ -426,16 +430,10 @@ int chp_new(struct chp_id chpid)
|
|
|
put_device(&chp->dev);
|
|
|
goto out;
|
|
|
}
|
|
|
- ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group);
|
|
|
- if (ret) {
|
|
|
- device_unregister(&chp->dev);
|
|
|
- goto out;
|
|
|
- }
|
|
|
mutex_lock(&channel_subsystems[chpid.cssid]->mutex);
|
|
|
if (channel_subsystems[chpid.cssid]->cm_enabled) {
|
|
|
ret = chp_add_cmg_attr(chp);
|
|
|
if (ret) {
|
|
|
- sysfs_remove_group(&chp->dev.kobj, &chp_attr_group);
|
|
|
device_unregister(&chp->dev);
|
|
|
mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
|
|
|
goto out;
|