Merge tag 'drm-intel-next-fixes-2021-04-30' of git://anongit.freedesktop.org/drm...
[linux-2.6-microblaze.git] / drivers / base / cpu.c
index d2136ab..8f1d656 100644 (file)
@@ -139,11 +139,11 @@ EXPORT_SYMBOL_GPL(cpu_subsys);
 #ifdef CONFIG_KEXEC
 #include <linux/kexec.h>
 
-static ssize_t show_crash_notes(struct device *dev, struct device_attribute *attr,
+static ssize_t crash_notes_show(struct device *dev,
+                               struct device_attribute *attr,
                                char *buf)
 {
        struct cpu *cpu = container_of(dev, struct cpu, dev);
-       ssize_t rc;
        unsigned long long addr;
        int cpunum;
 
@@ -156,21 +156,18 @@ static ssize_t show_crash_notes(struct device *dev, struct device_attribute *att
         * operation should be safe. No locking required.
         */
        addr = per_cpu_ptr_to_phys(per_cpu_ptr(crash_notes, cpunum));
-       rc = sprintf(buf, "%Lx\n", addr);
-       return rc;
+
+       return sysfs_emit(buf, "%llx\n", addr);
 }
-static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
+static DEVICE_ATTR_ADMIN_RO(crash_notes);
 
-static ssize_t show_crash_notes_size(struct device *dev,
+static ssize_t crash_notes_size_show(struct device *dev,
                                     struct device_attribute *attr,
                                     char *buf)
 {
-       ssize_t rc;
-
-       rc = sprintf(buf, "%zu\n", sizeof(note_buf_t));
-       return rc;
+       return sysfs_emit(buf, "%zu\n", sizeof(note_buf_t));
 }
-static DEVICE_ATTR(crash_notes_size, 0400, show_crash_notes_size, NULL);
+static DEVICE_ATTR_ADMIN_RO(crash_notes_size);
 
 static struct attribute *crash_note_cpu_attrs[] = {
        &dev_attr_crash_notes.attr,
@@ -231,7 +228,7 @@ static struct cpu_attr cpu_attrs[] = {
 static ssize_t print_cpus_kernel_max(struct device *dev,
                                     struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "%d\n", NR_CPUS - 1);
+       return sysfs_emit(buf, "%d\n", NR_CPUS - 1);
 }
 static DEVICE_ATTR(kernel_max, 0444, print_cpus_kernel_max, NULL);
 
@@ -241,37 +238,37 @@ unsigned int total_cpus;
 static ssize_t print_cpus_offline(struct device *dev,
                                  struct device_attribute *attr, char *buf)
 {
-       int n = 0, len = PAGE_SIZE-2;
+       int len = 0;
        cpumask_var_t offline;
 
        /* display offline cpus < nr_cpu_ids */
        if (!alloc_cpumask_var(&offline, GFP_KERNEL))
                return -ENOMEM;
        cpumask_andnot(offline, cpu_possible_mask, cpu_online_mask);
-       n = scnprintf(buf, len, "%*pbl", cpumask_pr_args(offline));
+       len += sysfs_emit_at(buf, len, "%*pbl", cpumask_pr_args(offline));
        free_cpumask_var(offline);
 
        /* display offline cpus >= nr_cpu_ids */
        if (total_cpus && nr_cpu_ids < total_cpus) {
-               if (n && n < len)
-                       buf[n++] = ',';
+               len += sysfs_emit_at(buf, len, ",");
 
                if (nr_cpu_ids == total_cpus-1)
-                       n += scnprintf(&buf[n], len - n, "%u", nr_cpu_ids);
+                       len += sysfs_emit_at(buf, len, "%u", nr_cpu_ids);
                else
-                       n += scnprintf(&buf[n], len - n, "%u-%d",
-                                                     nr_cpu_ids, total_cpus-1);
+                       len += sysfs_emit_at(buf, len, "%u-%d",
+                                            nr_cpu_ids, total_cpus - 1);
        }
 
-       n += scnprintf(&buf[n], len - n, "\n");
-       return n;
+       len += sysfs_emit_at(buf, len, "\n");
+
+       return len;
 }
 static DEVICE_ATTR(offline, 0444, print_cpus_offline, NULL);
 
 static ssize_t print_cpus_isolated(struct device *dev,
                                  struct device_attribute *attr, char *buf)
 {
-       int n;
+       int len;
        cpumask_var_t isolated;
 
        if (!alloc_cpumask_var(&isolated, GFP_KERNEL))
@@ -279,19 +276,19 @@ static ssize_t print_cpus_isolated(struct device *dev,
 
        cpumask_andnot(isolated, cpu_possible_mask,
                       housekeeping_cpumask(HK_FLAG_DOMAIN));
-       n = sprintf(buf, "%*pbl\n", cpumask_pr_args(isolated));
+       len = sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(isolated));
 
        free_cpumask_var(isolated);
 
-       return n;
+       return len;
 }
 static DEVICE_ATTR(isolated, 0444, print_cpus_isolated, NULL);
 
 #ifdef CONFIG_NO_HZ_FULL
 static ssize_t print_cpus_nohz_full(struct device *dev,
-                                 struct device_attribute *attr, char *buf)
+                                   struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "%*pbl\n", cpumask_pr_args(tick_nohz_full_mask));
+       return sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(tick_nohz_full_mask));
 }
 static DEVICE_ATTR(nohz_full, 0444, print_cpus_nohz_full, NULL);
 #endif
@@ -320,22 +317,23 @@ static ssize_t print_cpu_modalias(struct device *dev,
                                  struct device_attribute *attr,
                                  char *buf)
 {
-       ssize_t n;
+       int len = 0;
        u32 i;
 
-       n = sprintf(buf, "cpu:type:" CPU_FEATURE_TYPEFMT ":feature:",
-                   CPU_FEATURE_TYPEVAL);
+       len += sysfs_emit_at(buf, len,
+                            "cpu:type:" CPU_FEATURE_TYPEFMT ":feature:",
+                            CPU_FEATURE_TYPEVAL);
 
        for (i = 0; i < MAX_CPU_FEATURES; i++)
                if (cpu_have_feature(i)) {
-                       if (PAGE_SIZE < n + sizeof(",XXXX\n")) {
+                       if (len + sizeof(",XXXX\n") >= PAGE_SIZE) {
                                WARN(1, "CPU features overflow page\n");
                                break;
                        }
-                       n += sprintf(&buf[n], ",%04X", i);
+                       len += sysfs_emit_at(buf, len, ",%04X", i);
                }
-       buf[n++] = '\n';
-       return n;
+       len += sysfs_emit_at(buf, len, "\n");
+       return len;
 }
 
 static int cpu_uevent(struct device *dev, struct kobj_uevent_env *env)
@@ -516,56 +514,56 @@ static void __init cpu_dev_register_generic(void)
 ssize_t __weak cpu_show_meltdown(struct device *dev,
                                 struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spectre_v1(struct device *dev,
                                   struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spectre_v2(struct device *dev,
                                   struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spec_store_bypass(struct device *dev,
                                          struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_l1tf(struct device *dev,
                             struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_mds(struct device *dev,
                            struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_tsx_async_abort(struct device *dev,
                                        struct device_attribute *attr,
                                        char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_itlb_multihit(struct device *dev,
-                           struct device_attribute *attr, char *buf)
+                                     struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_srbds(struct device *dev,
                              struct device_attribute *attr, char *buf)
 {
-       return sprintf(buf, "Not affected\n");
+       return sysfs_emit(buf, "Not affected\n");
 }
 
 static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL);