On 7/17/2012 2:02 PM, David Miller wrote:
From: John Fastabend <john.r.fastabend@xxxxxxxxx>
Date: Tue, 17 Jul 2012 13:50:16 -0700
On 7/17/2012 12:24 PM, David Miller wrote:
From: John Fastabend <john.r.fastabend@xxxxxxxxx>
Date: Tue, 17 Jul 2012 12:09:53 -0700
although we don't have an early_init hook for netprio_cgroup so this
is probably not correct.
The dependency is actually on net_dev_init (a subsys_initcall) rather
than a pure_initcall.
net_dev_init is what registers the netdev_net_ops, which in turn
initializes the netdev list in namespaces such as &init_net
Ah right thanks sorry for the thrash. I guess we need to check if the
netdev list in the init_net namespace is initialized.
It's a hack, but we could export and then test dev_boot_phase == 0,
and if that test is true then skip the init_net device walk in the
cgroup code.
But I don't like that very much.
The things this code cares about can't even be an issue until
net_dev_init() runs.
There is a comment warning not to do this in linux/init.h, but we
could change the module_init() in netprio_cgroup.c to some level which
runs after subsys_inticall(). When built as a module, linux/init.h
will translate this into module_init() which is basically the behavior
we want.
Perhaps the easiest way is to check net->count this should be zero
until setup_net is called.
if (!atomic_read(&init_net.count))
return ret;
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html