|
@@ -141,6 +141,23 @@ static ssize_t fscaps_show(struct kobject *kobj,
|
|
|
}
|
|
|
KERNEL_ATTR_RO(fscaps);
|
|
|
|
|
|
+int rcu_expedited;
|
|
|
+static ssize_t rcu_expedited_show(struct kobject *kobj,
|
|
|
+ struct kobj_attribute *attr, char *buf)
|
|
|
+{
|
|
|
+ return sprintf(buf, "%d\n", rcu_expedited);
|
|
|
+}
|
|
|
+static ssize_t rcu_expedited_store(struct kobject *kobj,
|
|
|
+ struct kobj_attribute *attr,
|
|
|
+ const char *buf, size_t count)
|
|
|
+{
|
|
|
+ if (kstrtoint(buf, 0, &rcu_expedited))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ return count;
|
|
|
+}
|
|
|
+KERNEL_ATTR_RW(rcu_expedited);
|
|
|
+
|
|
|
/*
|
|
|
* Make /sys/kernel/notes give the raw contents of our kernel .notes section.
|
|
|
*/
|
|
@@ -182,6 +199,7 @@ static struct attribute * kernel_attrs[] = {
|
|
|
&kexec_crash_size_attr.attr,
|
|
|
&vmcoreinfo_attr.attr,
|
|
|
#endif
|
|
|
+ &rcu_expedited_attr.attr,
|
|
|
NULL
|
|
|
};
|
|
|
|