cls_cgroup: fix an oops when removing a cgroup
authorLi Zefan <lizf@cn.fujitsu.com>
Sun, 28 Dec 2008 17:57:19 +0000 (17:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Dec 2008 03:40:44 +0000 (19:40 -0800)
When removing a cgroup, an oops was triggered immediately. The cause
is wrong kfree() in cgrp_destroy().

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_cgroup.c

index 0d68b1975983a323775b5c4deef4f2ae1ae8ae5d..31d95b1946c6ab27a681b0fe90b5869d16e1e65a 100644 (file)
@@ -46,7 +46,7 @@ static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss,
 
 static void cgrp_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp)
 {
-       kfree(ss);
+       kfree(net_cls_state(cgrp));
 }
 
 static u64 read_classid(struct cgroup *cgrp, struct cftype *cft)