ASoC: wm_adsp: For TLV controls only register TLV get/set
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Wed, 28 Feb 2018 10:31:10 +0000 (10:31 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 28 Feb 2018 10:38:40 +0000 (10:38 +0000)
commitd7789f5bcdb298c4a302db471b1b20f74a20de95
tree05bcdd40337a46b08de19b4cccd026b035aab526
parent7928b2cbe55b2a410a0f5c1f154610059c57b1b2
ASoC: wm_adsp: For TLV controls only register TLV get/set

Normal 512-byte get/set of a TLV isn't supported but we were
registering the normal get/set anyway and relying on omitting
the SNDRV_CTL_ELEM_ACCESS_[READ|WRITE] flags to prevent them
being called.

Trouble is if this gets broken in the core ALSA code - as it has
been since at least 4.14 - the standard get/set can be called
unexpectedly and corrupt memory.

There's no point providing functions that won't be called and
it's a trivial change. The benefit is that if the ALSA core gets
broken again we get a big fat immediate NULL dereference instead
of a memory corruption timebomb.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
sound/soc/codecs/wm_adsp.c