diff options
| author | Alan Stern <stern@rowland.harvard.edu> | 2006-06-16 17:10:48 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-06-21 15:40:49 -0400 |
| commit | 3e95637a48820ff8bedb33e6439def96ccff1de5 (patch) | |
| tree | 69930bc984892d68574e3623a0cbd88928fa6d06 | |
| parent | e9a7d305faec364ba973d6c22c9b1e802ef79204 (diff) | |
[PATCH] Driver Core: Make dev_info and friends print the bus name if there is no driver
This patch (as721) makes dev_info and related macros print the device's
bus name if the device doesn't have a driver, instead of printing just a
blank. If the device isn't on a bus either... well, then it does leave
a blank space. But it will be easier for someone else to change if they
want.
Cc: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| -rw-r--r-- | drivers/base/core.c | 16 | ||||
| -rw-r--r-- | include/linux/device.h | 3 |
2 files changed, 18 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index a979bc3f49..d0f84ff787 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
| @@ -29,6 +29,22 @@ int (*platform_notify_remove)(struct device * dev) = NULL; | |||
| 29 | * sysfs bindings for devices. | 29 | * sysfs bindings for devices. |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| 32 | /** | ||
| 33 | * dev_driver_string - Return a device's driver name, if at all possible | ||
| 34 | * @dev: struct device to get the name of | ||
| 35 | * | ||
| 36 | * Will return the device's driver's name if it is bound to a device. If | ||
| 37 | * the device is not bound to a device, it will return the name of the bus | ||
| 38 | * it is attached to. If it is not attached to a bus either, an empty | ||
| 39 | * string will be returned. | ||
| 40 | */ | ||
| 41 | const char *dev_driver_string(struct device *dev) | ||
| 42 | { | ||
| 43 | return dev->driver ? dev->driver->name : | ||
| 44 | (dev->bus ? dev->bus->name : ""); | ||
| 45 | } | ||
| 46 | EXPORT_SYMBOL_GPL(dev_driver_string); | ||
| 47 | |||
| 32 | #define to_dev(obj) container_of(obj, struct device, kobj) | 48 | #define to_dev(obj) container_of(obj, struct device, kobj) |
| 33 | #define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr) | 49 | #define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr) |
| 34 | 50 | ||
diff --git a/include/linux/device.h b/include/linux/device.h index b473f42789..1e5f30da98 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -416,8 +416,9 @@ extern int firmware_register(struct subsystem *); | |||
| 416 | extern void firmware_unregister(struct subsystem *); | 416 | extern void firmware_unregister(struct subsystem *); |
| 417 | 417 | ||
| 418 | /* debugging and troubleshooting/diagnostic helpers. */ | 418 | /* debugging and troubleshooting/diagnostic helpers. */ |
| 419 | extern const char *dev_driver_string(struct device *dev); | ||
| 419 | #define dev_printk(level, dev, format, arg...) \ | 420 | #define dev_printk(level, dev, format, arg...) \ |
| 420 | printk(level "%s %s: " format , (dev)->driver ? (dev)->driver->name : "" , (dev)->bus_id , ## arg) | 421 | printk(level "%s %s: " format , dev_driver_string(dev) , (dev)->bus_id , ## arg) |
| 421 | 422 | ||
| 422 | #ifdef DEBUG | 423 | #ifdef DEBUG |
| 423 | #define dev_dbg(dev, format, arg...) \ | 424 | #define dev_dbg(dev, format, arg...) \ |
