All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Thelen <gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH] cgroup: avoid creating degenerate allcg_list
Date: Wed, 28 Nov 2012 10:26:32 -0800	[thread overview]
Message-ID: <1354127192-22153-1-git-send-email-gthelen@google.com> (raw)

Before this patch init_cgroup_root() created a degenerate list by
first inserting a element into allcg_list and then initializing the
inserted list element.  The initialization reset the element's
prev/next fields forming a degenerate list where allcg_list pointed to
element, but element pointed to itself.  This problem was introduced
in 2243076ad128 "cgroup: initialize cgrp->allcg_node in
init_cgroup_housekeeping()".  CONFIG_DEBUG_LIST reported a list_add
corruption in cgroup_mkdir() running next-20121127 (ce2931a).

This patch fixes the problem by performing element initialization
before insertion.

Signed-off-by: Greg Thelen <gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
---
 kernel/cgroup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 01d5342..ece60d4 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1394,6 +1394,7 @@ static void init_cgroup_root(struct cgroupfs_root *root)
 {
 	struct cgroup *cgrp = &root->top_cgroup;
 
+	init_cgroup_housekeeping(cgrp);
 	INIT_LIST_HEAD(&root->subsys_list);
 	INIT_LIST_HEAD(&root->root_list);
 	INIT_LIST_HEAD(&root->allcg_list);
@@ -1401,7 +1402,6 @@ static void init_cgroup_root(struct cgroupfs_root *root)
 	cgrp->root = root;
 	cgrp->top_cgroup = cgrp;
 	list_add_tail(&cgrp->allcg_node, &root->allcg_list);
-	init_cgroup_housekeeping(cgrp);
 }
 
 static bool init_root_id(struct cgroupfs_root *root)
-- 
1.7.7.3

WARNING: multiple messages have this Message-ID (diff)
From: Greg Thelen <gthelen@google.com>
To: Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>
Cc: containers@lists.linux-foundation.org, cgroups@vger.kernel.org,
	linux-kernel@vger.kernel.org, Greg Thelen <gthelen@google.com>
Subject: [PATCH] cgroup: avoid creating degenerate allcg_list
Date: Wed, 28 Nov 2012 10:26:32 -0800	[thread overview]
Message-ID: <1354127192-22153-1-git-send-email-gthelen@google.com> (raw)

Before this patch init_cgroup_root() created a degenerate list by
first inserting a element into allcg_list and then initializing the
inserted list element.  The initialization reset the element's
prev/next fields forming a degenerate list where allcg_list pointed to
element, but element pointed to itself.  This problem was introduced
in 2243076ad128 "cgroup: initialize cgrp->allcg_node in
init_cgroup_housekeeping()".  CONFIG_DEBUG_LIST reported a list_add
corruption in cgroup_mkdir() running next-20121127 (ce2931a).

This patch fixes the problem by performing element initialization
before insertion.

Signed-off-by: Greg Thelen <gthelen@google.com>
---
 kernel/cgroup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 01d5342..ece60d4 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1394,6 +1394,7 @@ static void init_cgroup_root(struct cgroupfs_root *root)
 {
 	struct cgroup *cgrp = &root->top_cgroup;
 
+	init_cgroup_housekeeping(cgrp);
 	INIT_LIST_HEAD(&root->subsys_list);
 	INIT_LIST_HEAD(&root->root_list);
 	INIT_LIST_HEAD(&root->allcg_list);
@@ -1401,7 +1402,6 @@ static void init_cgroup_root(struct cgroupfs_root *root)
 	cgrp->root = root;
 	cgrp->top_cgroup = cgrp;
 	list_add_tail(&cgrp->allcg_node, &root->allcg_list);
-	init_cgroup_housekeeping(cgrp);
 }
 
 static bool init_root_id(struct cgroupfs_root *root)
-- 
1.7.7.3


             reply	other threads:[~2012-11-28 18:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-28 18:26 Greg Thelen [this message]
2012-11-28 18:26 ` [PATCH] cgroup: avoid creating degenerate allcg_list Greg Thelen
     [not found] ` <1354127192-22153-1-git-send-email-gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-11-28 18:29   ` Tejun Heo
2012-11-28 18:29     ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1354127192-22153-1-git-send-email-gthelen@google.com \
    --to=gthelen-hpiqsd4aklfqt0dzr+alfa@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.