]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Feb 2023 11:26:53 +0000 (12:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Feb 2023 11:26:53 +0000 (12:26 +0100)
added patches:
asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch

queue-5.10/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch b/queue-5.10/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch
new file mode 100644 (file)
index 0000000..4278a5f
--- /dev/null
@@ -0,0 +1,59 @@
+From 1f810d2b6b2fbdc5279644d8b2c140b1f7c9d43d Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Thu, 16 Feb 2023 18:23:40 +0200
+Subject: ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
+
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+
+commit 1f810d2b6b2fbdc5279644d8b2c140b1f7c9d43d upstream.
+
+The HDaudio stream allocation is done first, and in a second step the
+LOSIDV parameter is programmed for the multi-link used by a codec.
+
+This leads to a possible stream_tag leak, e.g. if a DisplayAudio link
+is not used. This would happen when a non-Intel graphics card is used
+and userspace unconditionally uses the Intel Display Audio PCMs without
+checking if they are connected to a receiver with jack controls.
+
+We should first check that there is a valid multi-link entry to
+configure before allocating a stream_tag. This change aligns the
+dma_assign and dma_cleanup phases.
+
+Complements: b0cd60f3e9f5 ("ALSA/ASoC: hda: clarify bus_get_link() and bus_link_get() helpers")
+Link: https://github.com/thesofproject/linux/issues/4151
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Reviewed-by: Rander Wang <rander.wang@intel.com>
+Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
+Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
+Link: https://lore.kernel.org/r/20230216162340.19480-1-peter.ujfalusi@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/sof/intel/hda-dai.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/sound/soc/sof/intel/hda-dai.c
++++ b/sound/soc/sof/intel/hda-dai.c
+@@ -212,6 +212,10 @@ static int hda_link_hw_params(struct snd
+       int stream_tag;
+       int ret;
++      link = snd_hdac_ext_bus_get_link(bus, codec_dai->component->name);
++      if (!link)
++              return -EINVAL;
++
+       /* get stored dma data if resuming from system suspend */
+       link_dev = snd_soc_dai_get_dma_data(dai, substream);
+       if (!link_dev) {
+@@ -232,10 +236,6 @@ static int hda_link_hw_params(struct snd
+       if (ret < 0)
+               return ret;
+-      link = snd_hdac_ext_bus_get_link(bus, codec_dai->component->name);
+-      if (!link)
+-              return -EINVAL;
+-
+       /* set the hdac_stream in the codec dai */
+       snd_soc_dai_set_stream(codec_dai, hdac_stream(link_dev), substream->stream);
index 36a0e03f00b5036079a4e1337ef5620ce4375ac0..3c4e9ca106fcf0f540b2907de354804883a70d33 100644 (file)
@@ -52,3 +52,4 @@ i40e-add-checking-for-null-for-nlmsg_find_attr.patch
 net-sched-tcindex-search-key-must-be-16-bits.patch
 kvm-initialize-all-of-the-kvm_debugregs-structure-before-sending-it-to-userspace.patch
 alarmtimer-prevent-starvation-by-small-intervals-and-sig_ign.patch
+asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch