fix klist to have the same klist_add semantics as list_head
Subsystems (2)
PATCH 1/1 fix klist to have the same klist_add semantics as list_head
at the moment, the list_head semantics are
list_add(node, head)
whereas current klist semantics are
klist_add(head, node)
This is bound to cause confusion, and since klist is the newcomer, it should follow the list_head semantics.
I also added missing include guards to klist.h
Signed-off-by James Bottomley <[email protected]>
drivers/base/bus.c +2 -2
@@ -356,7 +356,7 @@ int bus_add_device(struct device * dev)if (bus) {pr_debug ("bus %s: add device %s\n" , bus->name, dev->bus_id);device_attach (dev); -klist_add_tail (&bus->klist_devices, &dev->knode_bus); +klist_add_tail (&dev->knode_bus, &bus->klist_devices); error =device_add_attrs (bus, dev);if (!error) {sysfs_create_link (&bus->devices.kobj, &dev->kobj, dev->bus_id);
@@ -444,7 +444,7 @@ int bus_add_driver(struct device_driver }driver_attach (drv); -klist_add_tail (&bus->klist_drivers, &drv->knode_bus); +klist_add_tail (&drv->knode_bus, &bus->klist_drivers);module_add_driver (drv->owner, drv);driver_add_attrs (bus, drv);
drivers/base/core.c +1 -1
@@ -249,7 +249,7 @@ int device_add(struct device *dev)if ((error =bus_add_device (dev))) goto BusError;if (parent) -klist_add_tail (&parent->klist_children, &dev->knode_parent); +klist_add_tail (&dev->knode_parent, &parent->klist_children);/* notify platform of device entry */ if (platform_notify)
drivers/base/dd.c +1 -1
@@ -42,7 +42,7 @@ void device_bind_driver(struct device * {pr_debug ("bound device '%s' to driver '%s'\n" , dev->bus_id, dev->driver->name); -klist_add_tail (&dev->driver->klist_devices, &dev->knode_driver); +klist_add_tail (&dev->knode_driver, &dev->driver->klist_devices);sysfs_create_link (&dev->driver->kobj, &dev->kobj,kobject_name (&dev->kobj));sysfs_create_link (&dev->kobj, &dev->driver->kobj,"driver" );
include/linux/klist.h +6 -2
@@ -9,6 +9,9 @@* This file is rleased under the GPL v2. */ +#ifndef _LINUX_KLIST_H +#define _LINUX_KLIST_H +#include <linux/spinlock.h> #include <linux/completion.h> #include <linux/kref.h>
@@ -31,8 +34,8 @@ struct klist_node {struct completion n_removed; }; -extern void klist_add_tail (struct klist * k,struct klist_node * n); -extern void klist_add_head (struct klist * k,struct klist_node * n); +extern void klist_add_tail (struct klist_node * n,struct klist * k); +extern void klist_add_head (struct klist_node * n,struct klist * k);extern void klist_del (struct klist_node * n);extern void klist_remove (struct klist_node * n);
@@ -53,3 +56,4 @@ extern void klist_iter_init_node(structextern void klist_iter_exit (struct klist_iter * i);extern struct klist_node *klist_next (struct klist_iter * i); +#endif
lib/klist.c +4 -4
@@ -79,11 +79,11 @@ static void klist_node_init(struct klist/** * klist_add_head - Initialize a klist_node and add it to front. -* @k: klist it's going on. * @n: node we're adding. +* @k: klist it's going on. */ -void klist_add_head (struct klist * k,struct klist_node * n) +void klist_add_head (struct klist_node * n,struct klist * k) {klist_node_init (k, n);add_head (k, n);
@@ -94,11 +94,11 @@ EXPORT_SYMBOL_GPL(klist_add_head);/** * klist_add_tail - Initialize a klist_node and add it to back. -* @k: klist it's going on. * @n: node we're adding. +* @k: klist it's going on. */ -void klist_add_tail (struct klist * k,struct klist_node * n) +void klist_add_tail (struct klist_node * n,struct klist * k) {klist_node_init (k, n);add_tail (k, n);