diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2007-12-19 20:54:39 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-01-25 05:40:34 +0100 |
commit | cbe9c595f1de2e2a98403be2c14bfbc2486e84c4 (patch) | |
tree | c3e3a30bb18e1597dda4bc28c11c3add049e1e02 /drivers | |
parent | Infiniband: make ipath driver use default driver groups. (diff) | |
download | linux-cbe9c595f1de2e2a98403be2c14bfbc2486e84c4.tar.xz linux-cbe9c595f1de2e2a98403be2c14bfbc2486e84c4.zip |
Driver: add driver_add_kobj for looney iseries_veth driver
The iseries driver wants to hang kobjects off of its driver, so, to
preserve backwards compatibility, we need to add a call to the driver
core to allow future changes to work properly.
Hopefully no one uses this function in the future and the iseries_veth
driver authors come to their senses so I can remove this hack...
Cc: Dave Larson <larson1@us.ibm.com>
Cc: Santiago Leon <santil@us.ibm.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/driver.c | 24 | ||||
-rw-r--r-- | drivers/net/iseries_veth.c | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c index e3b58407fedc..633ae1d70e14 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -124,6 +124,30 @@ void driver_remove_file(struct device_driver * drv, struct driver_attribute * at /** + * driver_add_kobj - add a kobject below the specified driver + * + * You really don't want to do this, this is only here due to one looney + * iseries driver, go poke those developers if you are annoyed about + * this... + */ +int driver_add_kobj(struct device_driver *drv, struct kobject *kobj, + const char *fmt, ...) +{ + va_list args; + char *name; + + va_start(args, fmt); + name = kvasprintf(GFP_KERNEL, fmt, args); + va_end(args); + + if (!name) + return -ENOMEM; + + return kobject_add_ng(kobj, &drv->kobj, "%s", name); +} +EXPORT_SYMBOL_GPL(driver_add_kobj); + +/** * get_driver - increment driver reference count. * @drv: driver. */ diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c index 90ff4ec5f6fc..1a8299acd3f1 100644 --- a/drivers/net/iseries_veth.c +++ b/drivers/net/iseries_veth.c @@ -1705,7 +1705,7 @@ static int __init veth_module_init(void) kobj = &veth_cnx[i]->kobject; /* If the add failes, complain but otherwise continue */ - if (0 != kobject_add_ng(kobj, &veth_driver.driver.kobj, + if (0 != driver_add_kobj(&veth_driver.driver, kobj, "cnx%.2d", veth_cnx[i]->remote_lp)) veth_error("cnx %d: Failed adding to sysfs.\n", i); } |