Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4e46138 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

driver-core: remove struct bus_type.bus_attrs



Now that all in-kernel users of bus_type.bus_attrs have been converted
to use bus_groups instead, the bus_attrs field, and logic surrounding
it, can be removed.

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9d3fde86
Loading
Loading
Loading
Loading
+0 −42
Original line number Original line Diff line number Diff line
@@ -846,42 +846,6 @@ struct bus_type *find_bus(char *name)
}
}
#endif  /*  0  */
#endif  /*  0  */



/**
 * bus_add_attrs - Add default attributes for this bus.
 * @bus: Bus that has just been registered.
 */

static int bus_add_attrs(struct bus_type *bus)
{
	int error = 0;
	int i;

	if (bus->bus_attrs) {
		for (i = 0; bus->bus_attrs[i].attr.name; i++) {
			error = bus_create_file(bus, &bus->bus_attrs[i]);
			if (error)
				goto err;
		}
	}
done:
	return error;
err:
	while (--i >= 0)
		bus_remove_file(bus, &bus->bus_attrs[i]);
	goto done;
}

static void bus_remove_attrs(struct bus_type *bus)
{
	int i;

	if (bus->bus_attrs) {
		for (i = 0; bus->bus_attrs[i].attr.name; i++)
			bus_remove_file(bus, &bus->bus_attrs[i]);
	}
}

static int bus_add_groups(struct bus_type *bus,
static int bus_add_groups(struct bus_type *bus,
			  const struct attribute_group **groups)
			  const struct attribute_group **groups)
{
{
@@ -983,9 +947,6 @@ int bus_register(struct bus_type *bus)
	if (retval)
	if (retval)
		goto bus_probe_files_fail;
		goto bus_probe_files_fail;


	retval = bus_add_attrs(bus);
	if (retval)
		goto bus_attrs_fail;
	retval = bus_add_groups(bus, bus->bus_groups);
	retval = bus_add_groups(bus, bus->bus_groups);
	if (retval)
	if (retval)
		goto bus_groups_fail;
		goto bus_groups_fail;
@@ -994,8 +955,6 @@ int bus_register(struct bus_type *bus)
	return 0;
	return 0;


bus_groups_fail:
bus_groups_fail:
	bus_remove_attrs(bus);
bus_attrs_fail:
	remove_probe_files(bus);
	remove_probe_files(bus);
bus_probe_files_fail:
bus_probe_files_fail:
	kset_unregister(bus->p->drivers_kset);
	kset_unregister(bus->p->drivers_kset);
@@ -1024,7 +983,6 @@ void bus_unregister(struct bus_type *bus)
	pr_debug("bus: '%s': unregistering\n", bus->name);
	pr_debug("bus: '%s': unregistering\n", bus->name);
	if (bus->dev_root)
	if (bus->dev_root)
		device_unregister(bus->dev_root);
		device_unregister(bus->dev_root);
	bus_remove_attrs(bus);
	bus_remove_groups(bus, bus->bus_groups);
	bus_remove_groups(bus, bus->bus_groups);
	remove_probe_files(bus);
	remove_probe_files(bus);
	kset_unregister(bus->p->drivers_kset);
	kset_unregister(bus->p->drivers_kset);
+0 −2
Original line number Original line Diff line number Diff line
@@ -63,7 +63,6 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
 * @name:	The name of the bus.
 * @name:	The name of the bus.
 * @dev_name:	Used for subsystems to enumerate devices like ("foo%u", dev->id).
 * @dev_name:	Used for subsystems to enumerate devices like ("foo%u", dev->id).
 * @dev_root:	Default device to use as the parent.
 * @dev_root:	Default device to use as the parent.
 * @bus_attrs:	Default attributes of the bus.
 * @dev_attrs:	Default attributes of the devices on the bus.
 * @dev_attrs:	Default attributes of the devices on the bus.
 * @drv_attrs:	Default attributes of the device drivers on the bus.
 * @drv_attrs:	Default attributes of the device drivers on the bus.
 * @bus_groups:	Default attributes of the bus.
 * @bus_groups:	Default attributes of the bus.
@@ -106,7 +105,6 @@ struct bus_type {
	const char		*name;
	const char		*name;
	const char		*dev_name;
	const char		*dev_name;
	struct device		*dev_root;
	struct device		*dev_root;
	struct bus_attribute	*bus_attrs;	/* use bus_groups instead */
	struct device_attribute	*dev_attrs;	/* use dev_groups instead */
	struct device_attribute	*dev_attrs;	/* use dev_groups instead */
	struct driver_attribute	*drv_attrs;	/* use drv_groups instead */
	struct driver_attribute	*drv_attrs;	/* use drv_groups instead */
	const struct attribute_group **bus_groups;
	const struct attribute_group **bus_groups;