aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-01-01 21:09:16 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-01-04 16:28:59 -0500
commita1e9ca6967d68209c70e616a224efa89a6b86ca6 (patch)
tree5de17c38e1f91798105a401d8cbfe84e63f6eeae
parent013c074f8642d8e815ad670601f8e27155a74b57 (diff)
PM / sleep: Add support for read-only sysfs attributes
Some sysfs attributes in /sys/power/ should really be read-only, so add support for that, convert those attributes to read-only and drop the stub .show() routines from them. Original-by: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--kernel/power/main.c17
-rw-r--r--kernel/power/power.h9
2 files changed, 11 insertions, 15 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c
index b2dd4d999900..27946975eff0 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -280,13 +280,7 @@ static ssize_t pm_wakeup_irq_show(struct kobject *kobj,
280 return pm_wakeup_irq ? sprintf(buf, "%u\n", pm_wakeup_irq) : -ENODATA; 280 return pm_wakeup_irq ? sprintf(buf, "%u\n", pm_wakeup_irq) : -ENODATA;
281} 281}
282 282
283static ssize_t pm_wakeup_irq_store(struct kobject *kobj, 283power_attr_ro(pm_wakeup_irq);
284 struct kobj_attribute *attr,
285 const char *buf, size_t n)
286{
287 return -EINVAL;
288}
289power_attr(pm_wakeup_irq);
290 284
291#else /* !CONFIG_PM_SLEEP_DEBUG */ 285#else /* !CONFIG_PM_SLEEP_DEBUG */
292static inline void pm_print_times_init(void) {} 286static inline void pm_print_times_init(void) {}
@@ -564,14 +558,7 @@ static ssize_t pm_trace_dev_match_show(struct kobject *kobj,
564 return show_trace_dev_match(buf, PAGE_SIZE); 558 return show_trace_dev_match(buf, PAGE_SIZE);
565} 559}
566 560
567static ssize_t 561power_attr_ro(pm_trace_dev_match);
568pm_trace_dev_match_store(struct kobject *kobj, struct kobj_attribute *attr,
569 const char *buf, size_t n)
570{
571 return -EINVAL;
572}
573
574power_attr(pm_trace_dev_match);
575 562
576#endif /* CONFIG_PM_TRACE */ 563#endif /* CONFIG_PM_TRACE */
577 564
diff --git a/kernel/power/power.h b/kernel/power/power.h
index caadb566e82b..efe1b3b17c88 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -77,6 +77,15 @@ static struct kobj_attribute _name##_attr = { \
77 .store = _name##_store, \ 77 .store = _name##_store, \
78} 78}
79 79
80#define power_attr_ro(_name) \
81static struct kobj_attribute _name##_attr = { \
82 .attr = { \
83 .name = __stringify(_name), \
84 .mode = S_IRUGO, \
85 }, \
86 .show = _name##_show, \
87}
88
80/* Preferred image size in bytes (default 500 MB) */ 89/* Preferred image size in bytes (default 500 MB) */
81extern unsigned long image_size; 90extern unsigned long image_size;
82/* Size of memory reserved for drivers (default SPARE_PAGES x PAGE_SIZE) */ 91/* Size of memory reserved for drivers (default SPARE_PAGES x PAGE_SIZE) */