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

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

diff --git a/queue-5.4/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch b/queue-5.4/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch
new file mode 100644 (file)
index 0000000..15c2402
--- /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
+@@ -211,6 +211,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) {
+@@ -231,10 +235,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 stream tag in the codec dai dma params */
+       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+               snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
index e48cdde2dfc34e62dccfc500a4d781eb2329062d..482838f4825079cbd6b0d3c88f67aabdb31dc789 100644 (file)
@@ -151,3 +151,4 @@ ipv6-fix-tcp-socket-connection-with-dscp.patch
 i40e-add-checking-for-null-for-nlmsg_find_attr.patch
 kvm-initialize-all-of-the-kvm_debugregs-structure-before-sending-it-to-userspace.patch
 nilfs2-fix-underflow-in-second-superblock-position-calculations.patch
+asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch