diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-14 09:59:59 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-14 09:59:59 -0800 |
commit | 2d9c8b5d6a5f5f7a6111cc68a050b5b44729376b (patch) | |
tree | 9382e643df9d4115637ca320822702bb06130c1f /drivers/base | |
parent | 17bc14b767cf0692420c43dbe5310ae98a5a7836 (diff) | |
parent | 003db633d6f2d3649ea18652a3c55ad17d4f0e47 (diff) | |
download | linux-3.10-2d9c8b5d6a5f5f7a6111cc68a050b5b44729376b.tar.gz linux-3.10-2d9c8b5d6a5f5f7a6111cc68a050b5b44729376b.tar.bz2 linux-3.10-2d9c8b5d6a5f5f7a6111cc68a050b5b44729376b.zip |
Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 RAS update from Ingo Molnar:
"Rework all config variables used throughout the MCA code and collect
them together into a mca_config struct. This keeps them tightly and
neatly packed together instead of spilled all over the place.
Then, convert those which are used as booleans into real booleans and
save some space. These bits are exposed via
/sys/devices/system/machinecheck/machinecheck*/"
* 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, MCA: Finish mca_config conversion
x86, MCA: Convert the next three variables batch
x86, MCA: Convert rip_msr, mce_bootlog, monarch_timeout
x86, MCA: Convert dont_log_ce, banks and tolerant
drivers/base: Add a DEVICE_BOOL_ATTR macro
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/core.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 417913974df..a235085e343 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -171,6 +171,27 @@ ssize_t device_show_int(struct device *dev, } EXPORT_SYMBOL_GPL(device_show_int); +ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + struct dev_ext_attribute *ea = to_ext_attr(attr); + + if (strtobool(buf, ea->var) < 0) + return -EINVAL; + + return size; +} +EXPORT_SYMBOL_GPL(device_store_bool); + +ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct dev_ext_attribute *ea = to_ext_attr(attr); + + return snprintf(buf, PAGE_SIZE, "%d\n", *(bool *)(ea->var)); +} +EXPORT_SYMBOL_GPL(device_show_bool); + /** * device_release - free device structure. * @kobj: device's kobject. |