return count;
 }
 static struct kobj_attribute scan_sleep_millisecs_attr =
-       __ATTR(scan_sleep_millisecs, 0644, scan_sleep_millisecs_show,
-              scan_sleep_millisecs_store);
+       __ATTR_RW(scan_sleep_millisecs);
 
 static ssize_t alloc_sleep_millisecs_show(struct kobject *kobj,
                                          struct kobj_attribute *attr,
        return count;
 }
 static struct kobj_attribute alloc_sleep_millisecs_attr =
-       __ATTR(alloc_sleep_millisecs, 0644, alloc_sleep_millisecs_show,
-              alloc_sleep_millisecs_store);
+       __ATTR_RW(alloc_sleep_millisecs);
 
 static ssize_t pages_to_scan_show(struct kobject *kobj,
                                  struct kobj_attribute *attr,
        return count;
 }
 static struct kobj_attribute pages_to_scan_attr =
-       __ATTR(pages_to_scan, 0644, pages_to_scan_show,
-              pages_to_scan_store);
+       __ATTR_RW(pages_to_scan);
 
 static ssize_t pages_collapsed_show(struct kobject *kobj,
                                    struct kobj_attribute *attr,
 static struct kobj_attribute full_scans_attr =
        __ATTR_RO(full_scans);
 
-static ssize_t khugepaged_defrag_show(struct kobject *kobj,
-                                     struct kobj_attribute *attr, char *buf)
+static ssize_t defrag_show(struct kobject *kobj,
+                          struct kobj_attribute *attr, char *buf)
 {
        return single_hugepage_flag_show(kobj, attr, buf,
                                         TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
 }
-static ssize_t khugepaged_defrag_store(struct kobject *kobj,
-                                      struct kobj_attribute *attr,
-                                      const char *buf, size_t count)
+static ssize_t defrag_store(struct kobject *kobj,
+                           struct kobj_attribute *attr,
+                           const char *buf, size_t count)
 {
        return single_hugepage_flag_store(kobj, attr, buf, count,
                                 TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG);
 }
 static struct kobj_attribute khugepaged_defrag_attr =
-       __ATTR(defrag, 0644, khugepaged_defrag_show,
-              khugepaged_defrag_store);
+       __ATTR_RW(defrag);
 
 /*
  * max_ptes_none controls if khugepaged should collapse hugepages over
  * runs. Increasing max_ptes_none will instead potentially reduce the
  * free memory in the system during the khugepaged scan.
  */
-static ssize_t khugepaged_max_ptes_none_show(struct kobject *kobj,
-                                            struct kobj_attribute *attr,
-                                            char *buf)
+static ssize_t max_ptes_none_show(struct kobject *kobj,
+                                 struct kobj_attribute *attr,
+                                 char *buf)
 {
        return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_none);
 }
-static ssize_t khugepaged_max_ptes_none_store(struct kobject *kobj,
-                                             struct kobj_attribute *attr,
-                                             const char *buf, size_t count)
+static ssize_t max_ptes_none_store(struct kobject *kobj,
+                                  struct kobj_attribute *attr,
+                                  const char *buf, size_t count)
 {
        int err;
        unsigned long max_ptes_none;
        return count;
 }
 static struct kobj_attribute khugepaged_max_ptes_none_attr =
-       __ATTR(max_ptes_none, 0644, khugepaged_max_ptes_none_show,
-              khugepaged_max_ptes_none_store);
+       __ATTR_RW(max_ptes_none);
 
-static ssize_t khugepaged_max_ptes_swap_show(struct kobject *kobj,
-                                            struct kobj_attribute *attr,
-                                            char *buf)
+static ssize_t max_ptes_swap_show(struct kobject *kobj,
+                                 struct kobj_attribute *attr,
+                                 char *buf)
 {
        return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_swap);
 }
 
-static ssize_t khugepaged_max_ptes_swap_store(struct kobject *kobj,
-                                             struct kobj_attribute *attr,
-                                             const char *buf, size_t count)
+static ssize_t max_ptes_swap_store(struct kobject *kobj,
+                                  struct kobj_attribute *attr,
+                                  const char *buf, size_t count)
 {
        int err;
        unsigned long max_ptes_swap;
 }
 
 static struct kobj_attribute khugepaged_max_ptes_swap_attr =
-       __ATTR(max_ptes_swap, 0644, khugepaged_max_ptes_swap_show,
-              khugepaged_max_ptes_swap_store);
+       __ATTR_RW(max_ptes_swap);
 
-static ssize_t khugepaged_max_ptes_shared_show(struct kobject *kobj,
-                                              struct kobj_attribute *attr,
-                                              char *buf)
+static ssize_t max_ptes_shared_show(struct kobject *kobj,
+                                   struct kobj_attribute *attr,
+                                   char *buf)
 {
        return sysfs_emit(buf, "%u\n", khugepaged_max_ptes_shared);
 }
 
-static ssize_t khugepaged_max_ptes_shared_store(struct kobject *kobj,
-                                             struct kobj_attribute *attr,
-                                             const char *buf, size_t count)
+static ssize_t max_ptes_shared_store(struct kobject *kobj,
+                                    struct kobj_attribute *attr,
+                                    const char *buf, size_t count)
 {
        int err;
        unsigned long max_ptes_shared;
 }
 
 static struct kobj_attribute khugepaged_max_ptes_shared_attr =
-       __ATTR(max_ptes_shared, 0644, khugepaged_max_ptes_shared_show,
-              khugepaged_max_ptes_shared_store);
+       __ATTR_RW(max_ptes_shared);
 
 static struct attribute *khugepaged_attr[] = {
        &khugepaged_defrag_attr.attr,