static void cgroup_put(struct cgroup *cgrp);
 static int rebind_subsystems(struct cgroup_root *dst_root,
-                            unsigned long ss_mask);
+                            unsigned int ss_mask);
 static void cgroup_destroy_css_killed(struct cgroup *cgrp);
 static int cgroup_destroy_locked(struct cgroup *cgrp);
 static int create_css(struct cgroup *cgrp, struct cgroup_subsys *ss);
  * update of a tasks cgroup pointer by cgroup_attach_task()
  */
 
-static int cgroup_populate_dir(struct cgroup *cgrp, unsigned long subsys_mask);
+static int cgroup_populate_dir(struct cgroup *cgrp, unsigned int subsys_mask);
 static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
 static const struct file_operations proc_cgroupstats_operations;
 
  * @cgrp: target cgroup
  * @subsys_mask: mask of the subsystem ids whose files should be removed
  */
-static void cgroup_clear_dir(struct cgroup *cgrp, unsigned long subsys_mask)
+static void cgroup_clear_dir(struct cgroup *cgrp, unsigned int subsys_mask)
 {
        struct cgroup_subsys *ss;
        int i;
        for_each_subsys(ss, i) {
                struct cftype *cfts;
 
-               if (!test_bit(i, &subsys_mask))
+               if (!(subsys_mask & (1 << i)))
                        continue;
                list_for_each_entry(cfts, &ss->cfts, node)
                        cgroup_addrm_files(cgrp, cfts, false);
        }
 }
 
-static int rebind_subsystems(struct cgroup_root *dst_root,
-                            unsigned long ss_mask)
+static int rebind_subsystems(struct cgroup_root *dst_root, unsigned int ss_mask)
 {
        struct cgroup_subsys *ss;
        int ssid, i, ret;
                 * Just warn about it and continue.
                 */
                if (cgrp_dfl_root_visible) {
-                       pr_warn("failed to create files (%d) while rebinding 0x%lx to default root\n",
+                       pr_warn("failed to create files (%d) while rebinding 0x%x to default root\n",
                                ret, ss_mask);
                        pr_warn("you may retry by moving them to a different hierarchy and unbinding\n");
                }
 }
 
 struct cgroup_sb_opts {
-       unsigned long subsys_mask;
-       unsigned long flags;
+       unsigned int subsys_mask;
+       unsigned int flags;
        char *release_agent;
        bool cpuset_clone_children;
        char *name;
 {
        char *token, *o = data;
        bool all_ss = false, one_ss = false;
-       unsigned long mask = (unsigned long)-1;
+       unsigned int mask = -1U;
        struct cgroup_subsys *ss;
        int i;
 
 #ifdef CONFIG_CPUSETS
-       mask = ~(1UL << cpuset_cgrp_id);
+       mask = ~(1U << cpuset_cgrp_id);
 #endif
 
        memset(opts, 0, sizeof(*opts));
                        /* Mutually exclusive option 'all' + subsystem name */
                        if (all_ss)
                                return -EINVAL;
-                       set_bit(i, &opts->subsys_mask);
+                       opts->subsys_mask |= (1 << i);
                        one_ss = true;
 
                        break;
                if (all_ss || (!one_ss && !opts->none && !opts->name))
                        for_each_subsys(ss, i)
                                if (!ss->disabled)
-                                       set_bit(i, &opts->subsys_mask);
+                                       opts->subsys_mask |= (1 << i);
 
                /*
                 * We either have to specify by name or by subsystems. (So
        int ret = 0;
        struct cgroup_root *root = cgroup_root_from_kf(kf_root);
        struct cgroup_sb_opts opts;
-       unsigned long added_mask, removed_mask;
+       unsigned int added_mask, removed_mask;
 
        if (root->flags & CGRP_ROOT_SANE_BEHAVIOR) {
                pr_err("sane_behavior: remount is not allowed\n");
        /* Don't allow flags or name to change at remount */
        if (((opts.flags ^ root->flags) & CGRP_ROOT_OPTION_MASK) ||
            (opts.name && strcmp(opts.name, root->name))) {
-               pr_err("option or name mismatch, new: 0x%lx \"%s\", old: 0x%lx \"%s\"\n",
+               pr_err("option or name mismatch, new: 0x%x \"%s\", old: 0x%x \"%s\"\n",
                       opts.flags & CGRP_ROOT_OPTION_MASK, opts.name ?: "",
                       root->flags & CGRP_ROOT_OPTION_MASK, root->name);
                ret = -EINVAL;
                set_bit(CGRP_CPUSET_CLONE_CHILDREN, &root->cgrp.flags);
 }
 
-static int cgroup_setup_root(struct cgroup_root *root, unsigned long ss_mask)
+static int cgroup_setup_root(struct cgroup_root *root, unsigned int ss_mask)
 {
        LIST_HEAD(tmp_links);
        struct cgroup *root_cgrp = &root->cgrp;
 static int cgroup_subtree_control_write(struct cgroup_subsys_state *dummy_css,
                                        struct cftype *cft, char *buffer)
 {
-       unsigned long enable_req = 0, disable_req = 0, enable, disable;
+       unsigned int enable_req = 0, disable_req = 0, enable, disable;
        struct cgroup *cgrp = dummy_css->cgroup, *child;
        struct cgroup_subsys *ss;
        char *tok, *p;
  *
  * On failure, no file is added.
  */
-static int cgroup_populate_dir(struct cgroup *cgrp, unsigned long subsys_mask)
+static int cgroup_populate_dir(struct cgroup *cgrp, unsigned int subsys_mask)
 {
        struct cgroup_subsys *ss;
        int i, ret = 0;
        for_each_subsys(ss, i) {
                struct cftype *cfts;
 
-               if (!test_bit(i, &subsys_mask))
+               if (!(subsys_mask & (1 << i)))
                        continue;
 
                list_for_each_entry(cfts, &ss->cfts, node) {