mausezahn-libs = -lcli \
-lnet \
-lpcap \
-lrt \
-lpthread \
-lm
mausezahn-objs = str.o \
die.o \
xmalloc.o \
staging/layer1.o \
staging/layer2.o \
staging/layer3.o \
staging/layer4.o \
staging/hextools.o \
staging/tools.o \
staging/lookupdev.o \
staging/time.o \
staging/modifications.o \
staging/send_eth.o \
staging/send.o \
staging/cdp.o \
staging/rtp.o \
staging/dns.o \
staging/rcv_rtp.o \
staging/syslog.o \
staging/cli.o \
staging/cli_cmds.o \
staging/cli_launch.o \
staging/cli_legacy.o \
staging/cli_packet.o \
staging/cli_interface.o \
staging/cli_set.o \
staging/cli_dns.o \
staging/cli_arp.o \
staging/cli_bpdu.o \
staging/cli_eth.o \
staging/cli_ip.o \
staging/cli_udp.o \
staging/cli_tcp.o \
staging/cli_rtp.o \
staging/cli_tools.o \
staging/cli_igmp.o \
staging/cli_lldp.o \
staging/cli_sequence.o \
staging/mops.o \
staging/mops_update.o \
staging/mops_tools.o \
staging/mops_checksums.o \
staging/mops_threads.o \
staging/mops_dot1Q.o \
staging/mops_mpls.o \
staging/mops_ip.o \
staging/mops_tcp.o \
staging/mops_ext.o \
staging/mops_ext_arp.o \
staging/mops_ext_bpdu.o \
staging/mops_ext_rtp.o \
staging/mopsrx_arp.o \
staging/mops_ext_igmp.o \
staging/mops_ext_lldp.o \
staging/mops_sequence.o \
staging/automops.o \
staging/parse_xml.o \
staging/tx_switch.o \
staging/llist.o \
staging/directmops.o \
staging/mausezahn.o
mausezahn-eflags = -O2 -I. -I.. \
-DVERSION_STRING=\"$(VERSION_STRING)\" \
-DVERSION_LONG=\"$(VERSION_LONG)\"
mausezahn-confs =
linux/net-next.git/refs/?h=nds-private-remove&id=07cd12945551b63ecb1a349d50a6d69d1d6feb4a'>refslogtreecommitdiff
cgroup: don't online subsystems before cgroup_name/path() are operational
While refactoring cgroup creation, a5bca2152036 ("cgroup: factor out
cgroup_create() out of cgroup_mkdir()") incorrectly onlined subsystems
before the new cgroup is associated with it kernfs_node. This is fine
for cgroup proper but cgroup_name/path() depend on the associated
kernfs_node and if a subsystem makes the new cgroup_subsys_state
visible, which they're allowed to after onlining, it can lead to NULL
dereference.
The current code performs cgroup creation and subsystem onlining in
cgroup_create() and cgroup_mkdir() makes the cgroup and subsystems
visible afterwards. There's no reason to online the subsystems early
and we can simply drop cgroup_apply_control_enable() call from
cgroup_create() so that the subsystems are onlined and made visible at
the same time.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Fixes: a5bca2152036 ("cgroup: factor out cgroup_create() out of cgroup_mkdir()")
Cc: stable@vger.kernel.org # v4.6+