Skip to content

Commit

Permalink
driver-core: remove struct bus_type.drv_attrs
Browse files Browse the repository at this point in the history
Now that all in-kernel users of bus_type.drv_attrs have been converted
to use drv_groups instead, the drv_attrs field, and logic surrounding
it, can be removed.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Greg Kroah-Hartman committed Sep 28, 2013
1 parent b4e4613 commit e18945b
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 40 deletions.
40 changes: 2 additions & 38 deletions drivers/base/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -591,37 +591,6 @@ void bus_remove_device(struct device *dev)
bus_put(dev->bus);
}

static int driver_add_attrs(struct bus_type *bus, struct device_driver *drv)
{
int error = 0;
int i;

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

static void driver_remove_attrs(struct bus_type *bus,
struct device_driver *drv)
{
int i;

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

static int __must_check add_bind_files(struct device_driver *drv)
{
int ret;
Expand Down Expand Up @@ -720,16 +689,12 @@ int bus_add_driver(struct device_driver *drv)
printk(KERN_ERR "%s: uevent attr (%s) failed\n",
__func__, drv->name);
}
error = driver_add_attrs(bus, drv);
error = driver_add_groups(drv, bus->drv_groups);
if (error) {
/* How the hell do we get out of this pickle? Give up */
printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n",
__func__, drv->name);
}
error = driver_add_groups(drv, bus->drv_groups);
if (error)
printk(KERN_ERR "%s: driver_create_groups(%s) failed\n",
__func__, drv->name);
}

if (!drv->suppress_bind_attrs) {
error = add_bind_files(drv);
Expand Down Expand Up @@ -766,7 +731,6 @@ void bus_remove_driver(struct device_driver *drv)

if (!drv->suppress_bind_attrs)
remove_bind_files(drv);
driver_remove_attrs(drv->bus, drv);
driver_remove_groups(drv, drv->bus->drv_groups);
driver_remove_file(drv, &driver_attr_uevent);
klist_remove(&drv->p->knode_bus);
Expand Down
2 changes: 0 additions & 2 deletions include/linux/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
* @dev_name: Used for subsystems to enumerate devices like ("foo%u", dev->id).
* @dev_root: Default device to use as the parent.
* @dev_attrs: Default attributes of the devices on the bus.
* @drv_attrs: Default attributes of the device drivers on the bus.
* @bus_groups: Default attributes of the bus.
* @dev_groups: Default attributes of the devices on the bus.
* @drv_groups: Default attributes of the device drivers on the bus.
Expand Down Expand Up @@ -106,7 +105,6 @@ struct bus_type {
const char *dev_name;
struct device *dev_root;
struct device_attribute *dev_attrs; /* use dev_groups instead */
struct driver_attribute *drv_attrs; /* use drv_groups instead */
const struct attribute_group **bus_groups;
const struct attribute_group **dev_groups;
const struct attribute_group **drv_groups;
Expand Down

0 comments on commit e18945b

Please sign in to comment.