From: Greg Kroah-Hartman Date: Mon, 20 Feb 2023 11:26:53 +0000 (+0100) Subject: 5.10-stable patches X-Git-Tag: v4.14.306~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e0bd012c54b5106510b8f94e403e2e70987c1220;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: asoc-sof-intel-hda-dai-fix-possible-stream_tag-leak.patch --- 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 index 00000000000..4278a5f3d83 --- /dev/null +++ b/queue-5.10/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 +@@ -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); + diff --git a/queue-5.10/series b/queue-5.10/series index 36a0e03f00b..3c4e9ca106f 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -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