|
@@ -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,
|
|
|
};
|