s390/qeth: simplify L3 sysfs group management
Use the right helpers to create/remove all attribute groups in one go. Suggested-by: Hans Wippel <hwippel@linux.vnet.ibm.com> Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com> Reviewed-by: Ursula Braun <ubraun@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7c2e9ba373
commit
ab25a5014e
@ -1028,52 +1028,31 @@ static const struct attribute_group qeth_device_rxip_group = {
|
||||
.attrs = qeth_rxip_device_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *qeth_l3_only_attr_groups[] = {
|
||||
&qeth_l3_device_attr_group,
|
||||
&qeth_device_ipato_group,
|
||||
&qeth_device_vipa_group,
|
||||
&qeth_device_rxip_group,
|
||||
NULL,
|
||||
};
|
||||
|
||||
int qeth_l3_create_device_attributes(struct device *dev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = sysfs_create_group(&dev->kobj, &qeth_l3_device_attr_group);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = sysfs_create_group(&dev->kobj, &qeth_device_ipato_group);
|
||||
if (ret) {
|
||||
sysfs_remove_group(&dev->kobj, &qeth_l3_device_attr_group);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = sysfs_create_group(&dev->kobj, &qeth_device_vipa_group);
|
||||
if (ret) {
|
||||
sysfs_remove_group(&dev->kobj, &qeth_l3_device_attr_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_ipato_group);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = sysfs_create_group(&dev->kobj, &qeth_device_rxip_group);
|
||||
if (ret) {
|
||||
sysfs_remove_group(&dev->kobj, &qeth_l3_device_attr_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_ipato_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_vipa_group);
|
||||
return ret;
|
||||
}
|
||||
return 0;
|
||||
return sysfs_create_groups(&dev->kobj, qeth_l3_only_attr_groups);
|
||||
}
|
||||
|
||||
void qeth_l3_remove_device_attributes(struct device *dev)
|
||||
{
|
||||
sysfs_remove_group(&dev->kobj, &qeth_l3_device_attr_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_ipato_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_vipa_group);
|
||||
sysfs_remove_group(&dev->kobj, &qeth_device_rxip_group);
|
||||
sysfs_remove_groups(&dev->kobj, qeth_l3_only_attr_groups);
|
||||
}
|
||||
|
||||
const struct attribute_group *qeth_l3_attr_groups[] = {
|
||||
&qeth_device_attr_group,
|
||||
&qeth_device_blkt_group,
|
||||
/* l3 specific, see l3_{create,remove}_device_attributes(): */
|
||||
/* l3 specific, see qeth_l3_only_attr_groups: */
|
||||
&qeth_l3_device_attr_group,
|
||||
&qeth_device_ipato_group,
|
||||
&qeth_device_vipa_group,
|
||||
&qeth_device_rxip_group,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user