#
# Ux500 SoC audio configuration
#
menuconfig SND_SOC_UX500
tristate "SoC Audio support for Ux500 platform"
depends on SND_SOC
depends on MFD_DB8500_PRCMU
help
Say Y if you want to enable ASoC-support for
any of the Ux500 platforms (e.g. U8500).
config SND_SOC_UX500_PLAT_MSP_I2S
tristate
depends on SND_SOC_UX500
config SND_SOC_UX500_PLAT_DMA
tristate "Platform - DB8500 (DMA)"
depends on SND_SOC_UX500
select SND_SOC_GENERIC_DMAENGINE_PCM
help
Say Y if you want to enable the Ux500 platform-driver.
config SND_SOC_UX500_MACH_MOP500
tristate "Machine - MOP500 (Ux500 + AB8500)"
depends on AB8500_CORE && AB8500_GPADC && SND_SOC_UX500
select SND_SOC_AB8500_CODEC
select SND_SOC_UX500_PLAT_MSP_I2S
select SND_SOC_UX500_PLAT_DMA
help
Select this to enable the MOP500 machine-driver.
This will enable platform-drivers for: Ux500
This will enable codec-drivers for: AB8500
n' name='id' value='ac6e058b75be71208e98a5808453aae9a17be480'/>
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+