Forwarded: Re: [syzbot] [cgroups?] WARNING in css_rstat_exit

syzbot posted 1 patch 2 months, 3 weeks ago
Forwarded: Re: [syzbot] [cgroups?] WARNING in css_rstat_exit
Posted by syzbot 2 months, 3 weeks ago
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: Re: [syzbot] [cgroups?] WARNING in css_rstat_exit
Author: inwardvessel@gmail.com

#syz test

--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -5669,6 +5669,12 @@ static struct cgroup_subsys_state 
*css_create(struct cgroup *cgrp,

         init_and_link_css(css, ss, cgrp);

+       err = css_rstat_init(css);
+       if (err) {
+               ss->css_free(css);
+               goto err_out;
+       }
+
         err = percpu_ref_init(&css->refcnt, css_release, 0, GFP_KERNEL);
         if (err)
                 goto err_free_css;
@@ -5678,10 +5684,6 @@ static struct cgroup_subsys_state 
*css_create(struct cgroup *cgrp,
                 goto err_free_css;
         css->id = err;

-       err = css_rstat_init(css);
-       if (err)
-               goto err_free_css;
-
         /* @css is ready to be brought online now, make it visible */
         list_add_tail_rcu(&css->sibling, &parent_css->children);
         cgroup_idr_replace(&ss->css_idr, css, css->id);
@@ -5697,6 +5699,7 @@ static struct cgroup_subsys_state 
*css_create(struct cgroup *cgrp,
  err_free_css:
         INIT_RCU_WORK(&css->destroy_rwork, css_free_rwork_fn);
         queue_rcu_work(cgroup_destroy_wq, &css->destroy_rwork);
+err_out:
         return ERR_PTR(err);
  }
--