Message ID | 20101103233105.GA26124@gondor.apana.org.au |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
>> commits 8e039d84b323c450 >> (cgroups: net_cls as module) >> >> followed by commit f845172531f >> (cls_cgroup: Store classid in struct sock) > > Indeed, it looks like the tree I worked on didn't have the first > patch applied for some reason. > The first patch was merged in .34, and the second one .35, and from the changelog and the diff, seems you did know cls_cgroup can be a module. ;) > Anyway, this patch should fix the problem. Thanks Eric! > > cls_cgroup: Fix crash on module unload > > Somewhere along the lines net_cls_subsys_id became a macro when > cls_cgroup is built as a module. Not only did it make cls_cgroup > completely useless, it also causes it to crash on module unload. > > This patch fixes this by removing that macro. > > Thanks to Eric Dumazet for diagnosing this problem. > > Reported-by: Randy Dunlap <randy.dunlap@oracle.com> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> > Reviewed-by: Li Zefan <lizf@cn.fujitsu.com> > diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c > index 37dff78..d49c40f 100644 > --- a/net/sched/cls_cgroup.c > +++ b/net/sched/cls_cgroup.c > @@ -34,8 +34,6 @@ struct cgroup_subsys net_cls_subsys = { > .populate = cgrp_populate, > #ifdef CONFIG_NET_CLS_CGROUP > .subsys_id = net_cls_subsys_id, > -#else > -#define net_cls_subsys_id net_cls_subsys.subsys_id > #endif > .module = THIS_MODULE, > }; > > Cheers, -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Herbert Xu <herbert@gondor.apana.org.au> Date: Wed, 3 Nov 2010 18:31:05 -0500 > cls_cgroup: Fix crash on module unload > > Somewhere along the lines net_cls_subsys_id became a macro when > cls_cgroup is built as a module. Not only did it make cls_cgroup > completely useless, it also causes it to crash on module unload. > > This patch fixes this by removing that macro. > > Thanks to Eric Dumazet for diagnosing this problem. > > Reported-by: Randy Dunlap <randy.dunlap@oracle.com> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Applied, and queued up for -stable, thanks everyone! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 11/03/10 16:31, Herbert Xu wrote: > On Wed, Nov 03, 2010 at 11:01:17PM +0100, Eric Dumazet wrote: >> >> commits 8e039d84b323c450 >> (cgroups: net_cls as module) >> >> followed by commit f845172531f >> (cls_cgroup: Store classid in struct sock) > > Indeed, it looks like the tree I worked on didn't have the first > patch applied for some reason. > > Anyway, this patch should fix the problem. Thanks Eric! > > cls_cgroup: Fix crash on module unload > > Somewhere along the lines net_cls_subsys_id became a macro when > cls_cgroup is built as a module. Not only did it make cls_cgroup > completely useless, it also causes it to crash on module unload. > > This patch fixes this by removing that macro. > > Thanks to Eric Dumazet for diagnosing this problem. > > Reported-by: Randy Dunlap <randy.dunlap@oracle.com> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Tested-by: Randy Dunlap <randy.dunlap@oracle.com> Thanks. > > diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c > index 37dff78..d49c40f 100644 > --- a/net/sched/cls_cgroup.c > +++ b/net/sched/cls_cgroup.c > @@ -34,8 +34,6 @@ struct cgroup_subsys net_cls_subsys = { > .populate = cgrp_populate, > #ifdef CONFIG_NET_CLS_CGROUP > .subsys_id = net_cls_subsys_id, > -#else > -#define net_cls_subsys_id net_cls_subsys.subsys_id > #endif > .module = THIS_MODULE, > }; > > Cheers,
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c index 37dff78..d49c40f 100644 --- a/net/sched/cls_cgroup.c +++ b/net/sched/cls_cgroup.c @@ -34,8 +34,6 @@ struct cgroup_subsys net_cls_subsys = { .populate = cgrp_populate, #ifdef CONFIG_NET_CLS_CGROUP .subsys_id = net_cls_subsys_id, -#else -#define net_cls_subsys_id net_cls_subsys.subsys_id #endif .module = THIS_MODULE, };