Subject: CVE-2021-47037: ASoC: q6afe-clocks: fix reprobing of the driver

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ASoC: q6afe-clocks: fix reprobing of the driver

Q6afe-clocks driver can get reprobed. For example if the APR services
are restarted after the firmware crash. However currently Q6afe-clocks
driver will oops because hw.init will get cleared during first _probe
call. Rewrite the driver to fill the clock data at runtime rather than
using big static array of clocks.

The Linux kernel CVE team has assigned CVE-2021-47037 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 5.10 with commit 520a1c396d19 and fixed in 5.11.21 with commit 6893df3753be
	Issue introduced in 5.10 with commit 520a1c396d19 and fixed in 5.12.4 with commit 62413972f526
	Issue introduced in 5.10 with commit 520a1c396d19 and fixed in 5.13 with commit 96fadf7e8ff4

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2021-47037
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	sound/soc/qcom/qdsp6/q6afe-clocks.c
	sound/soc/qcom/qdsp6/q6afe.c
	sound/soc/qcom/qdsp6/q6afe.h

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/6893df3753beafa5f7351228a9dd8157a57d7492
	https://git.kernel.org/stable/c/62413972f5266568848a36fd15160397b211fa74
	https://git.kernel.org/stable/c/96fadf7e8ff49fdb74754801228942b67c3eeebd