diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-05-15 13:44:08 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-05-20 13:31:53 -0700 |
commit | 8882b39421bae317e3ee864edd845e994307ce16 (patch) | |
tree | cef24e2a04ad6716d37af2fabfe5f0a72dfe44b7 /include | |
parent | c110a2bd82676a8f124cf4dfc39339fd366f0e59 (diff) | |
download | linux-stable-8882b39421bae317e3ee864edd845e994307ce16.tar.gz linux-stable-8882b39421bae317e3ee864edd845e994307ce16.tar.bz2 linux-stable-8882b39421bae317e3ee864edd845e994307ce16.zip |
Driver core: add device_create_vargs and device_create_drvdata
We want to have the drvdata field set properly when creating the device
as sysfs callbacks can assume it is present and it can race the later
setting of this field.
So, create two new functions, deviec_create_vargs() and
device_create_drvdata() that take this new field.
device_create_drvdata() will go away in 2.6.27 as the drvdata field will
just be moved to the device_create() call as it should be.
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/device.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 15e9fa3ad3af..14616e80213c 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -449,9 +449,21 @@ extern int __must_check device_reprobe(struct device *dev); /* * Easy functions for dynamically creating devices on the fly */ +extern struct device *device_create_vargs(struct class *cls, + struct device *parent, + dev_t devt, + void *drvdata, + const char *fmt, + va_list vargs); extern struct device *device_create(struct class *cls, struct device *parent, dev_t devt, const char *fmt, ...) __attribute__((format(printf, 4, 5))); +extern struct device *device_create_drvdata(struct class *cls, + struct device *parent, + dev_t devt, + void *drvdata, + const char *fmt, ...) + __attribute__((format(printf, 5, 6))); extern void device_destroy(struct class *cls, dev_t devt); /* |