From b42e6be41b9b9e656d94f60c0cc1f15092fb4b2d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 20 Feb 2023 12:26:43 +0100 Subject: [PATCH] 5.4-stable patches added patches: asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch --- ...hda-dai-fix-possible-stream_tag-leak.patch | 59 +++++++++++++++++++ queue-5.4/series | 1 + 2 files changed, 60 insertions(+) create mode 100644 queue-5.4/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch 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 index 00000000000..15c24021fde --- /dev/null +++ b/queue-5.4/asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch @@ -0,0 +1,59 @@ +From 1f810d2b6b2fbdc5279644d8b2c140b1f7c9d43d Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Thu, 16 Feb 2023 18:23:40 +0200 +Subject: ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak + +From: Pierre-Louis Bossart + +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 +Reviewed-by: Ranjani Sridharan +Reviewed-by: Rander Wang +Reviewed-by: Bard Liao +Signed-off-by: Peter Ujfalusi +Link: https://lore.kernel.org/r/20230216162340.19480-1-peter.ujfalusi@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + 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); diff --git a/queue-5.4/series b/queue-5.4/series index e48cdde2dfc..482838f4825 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -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 -- 2.47.2