From: Greg Kroah-Hartman Date: Mon, 24 Oct 2022 14:49:56 +0000 (+0200) Subject: 6.0-stable patches X-Git-Tag: v6.0.4~4^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c824ee5cb2002799f113529c68f09e28a276625f;p=thirdparty%2Fkernel%2Fstable-queue.git 6.0-stable patches added patches: revert-alsa-hda-fix-page-fault-in-snd_hda_codec_shutdown.patch --- diff --git a/queue-6.0/revert-alsa-hda-fix-page-fault-in-snd_hda_codec_shutdown.patch b/queue-6.0/revert-alsa-hda-fix-page-fault-in-snd_hda_codec_shutdown.patch new file mode 100644 index 00000000000..6d7d3011e59 --- /dev/null +++ b/queue-6.0/revert-alsa-hda-fix-page-fault-in-snd_hda_codec_shutdown.patch @@ -0,0 +1,88 @@ +From tiwai@suse.de Mon Oct 24 16:49:03 2022 +From: Takashi Iwai +Date: Mon, 24 Oct 2022 16:39:31 +0200 +Subject: Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" +To: stable@vger.kernel.org +Cc: Greg Kroah-Hartman , Sasha Levin , linux-kernel@vger.kernel.org +Message-ID: <20221024143931.15722-1-tiwai@suse.de> + +From: Takashi Iwai + +This reverts commit 7494e2e6c55ed192f2b91c821fd6832744ba8741. + +Which was upstream commit f2bd1c5ae2cb0cf9525c9bffc0038c12dd7e1338. + +The patch caused a regression leading to the missing HD-audio device +with ASoC SOF driver. It was a part of large series and backporting +it alone breaks things while backporting the whole is too intrusive +as stable changes. And, the issue the patch tries to address is a +corner case, hence it's better to revert. + +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=216613 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/hda_codec.c | 41 +++++++++++++++++++++-------------------- + 1 file changed, 21 insertions(+), 20 deletions(-) + +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -931,28 +931,8 @@ snd_hda_codec_device_init(struct hda_bus + } + + codec->bus = bus; +- codec->depop_delay = -1; +- codec->fixup_id = HDA_FIXUP_ID_NOT_SET; +- codec->core.dev.release = snd_hda_codec_dev_release; +- codec->core.exec_verb = codec_exec_verb; + codec->core.type = HDA_DEV_LEGACY; + +- mutex_init(&codec->spdif_mutex); +- mutex_init(&codec->control_mutex); +- snd_array_init(&codec->mixers, sizeof(struct hda_nid_item), 32); +- snd_array_init(&codec->nids, sizeof(struct hda_nid_item), 32); +- snd_array_init(&codec->init_pins, sizeof(struct hda_pincfg), 16); +- snd_array_init(&codec->driver_pins, sizeof(struct hda_pincfg), 16); +- snd_array_init(&codec->cvt_setups, sizeof(struct hda_cvt_setup), 8); +- snd_array_init(&codec->spdif_out, sizeof(struct hda_spdif_out), 16); +- snd_array_init(&codec->jacktbl, sizeof(struct hda_jack_tbl), 16); +- snd_array_init(&codec->verbs, sizeof(struct hda_verb *), 8); +- INIT_LIST_HEAD(&codec->conn_list); +- INIT_LIST_HEAD(&codec->pcm_list_head); +- INIT_DELAYED_WORK(&codec->jackpoll_work, hda_jackpoll_work); +- refcount_set(&codec->pcm_ref, 1); +- init_waitqueue_head(&codec->remove_sleep); +- + return codec; + } + EXPORT_SYMBOL_GPL(snd_hda_codec_device_init); +@@ -1005,8 +985,29 @@ int snd_hda_codec_device_new(struct hda_ + if (snd_BUG_ON(codec_addr > HDA_MAX_CODEC_ADDRESS)) + return -EINVAL; + ++ codec->core.dev.release = snd_hda_codec_dev_release; ++ codec->core.exec_verb = codec_exec_verb; ++ + codec->card = card; + codec->addr = codec_addr; ++ mutex_init(&codec->spdif_mutex); ++ mutex_init(&codec->control_mutex); ++ snd_array_init(&codec->mixers, sizeof(struct hda_nid_item), 32); ++ snd_array_init(&codec->nids, sizeof(struct hda_nid_item), 32); ++ snd_array_init(&codec->init_pins, sizeof(struct hda_pincfg), 16); ++ snd_array_init(&codec->driver_pins, sizeof(struct hda_pincfg), 16); ++ snd_array_init(&codec->cvt_setups, sizeof(struct hda_cvt_setup), 8); ++ snd_array_init(&codec->spdif_out, sizeof(struct hda_spdif_out), 16); ++ snd_array_init(&codec->jacktbl, sizeof(struct hda_jack_tbl), 16); ++ snd_array_init(&codec->verbs, sizeof(struct hda_verb *), 8); ++ INIT_LIST_HEAD(&codec->conn_list); ++ INIT_LIST_HEAD(&codec->pcm_list_head); ++ refcount_set(&codec->pcm_ref, 1); ++ init_waitqueue_head(&codec->remove_sleep); ++ ++ INIT_DELAYED_WORK(&codec->jackpoll_work, hda_jackpoll_work); ++ codec->depop_delay = -1; ++ codec->fixup_id = HDA_FIXUP_ID_NOT_SET; + + #ifdef CONFIG_PM + codec->power_jiffies = jiffies; diff --git a/queue-6.0/series b/queue-6.0/series index 4d38dc5c610..ec06dfb1885 100644 --- a/queue-6.0/series +++ b/queue-6.0/series @@ -18,3 +18,4 @@ gcov-support-gcc-12.1-and-newer-compilers.patch io-wq-fix-memory-leak-in-worker-creation.patch mm-huge_memory-do-not-clobber-swp_entry_t-during-thp-split.patch fbdev-core-remove-remove_conflicting_pci_framebuffers.patch +revert-alsa-hda-fix-page-fault-in-snd_hda_codec_shutdown.patch