Received: by 2002:a05:6358:5282:b0:b5:90e7:25cb with SMTP id g2csp3406159rwa; Tue, 23 Aug 2022 04:21:51 -0700 (PDT) X-Google-Smtp-Source: AA6agR5U4BcyymTMnV9ISQQ1lmAubmzGsqwXTNfKxW6jkwHD+EhNuSTk8pS8gMDFfdIyk7c+qCN0 X-Received: by 2002:a63:c24:0:b0:42a:f03f:3553 with SMTP id b36-20020a630c24000000b0042af03f3553mr1624286pgl.406.1661253711526; Tue, 23 Aug 2022 04:21:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661253711; cv=none; d=google.com; s=arc-20160816; b=ooSXS4IK/D3MLba0ukIfD+zJMr/5kDB0knubIB7ZX5a69tpoXyRbTkPiSHggClTUhZ GMLBQO5DpZc93OshLvBr+sssnI0u9PM6qWLnDYX38+NYVtxjDxTjna1H6ukPHF84MaW6 X/9z5L929jJYqa8+nJVvBrHFMqODPbU1yi+X935mWoLdGce3WGue0f/iud9pIntVHfN4 k6CHGmCqrJAOO004M+4t3QDOGPs3rS1ISqn3nnWr42EZ89eRMmf2yih29T0vpUxXj+Q8 SYD8Zm57MJUDigoUBsmTrCwg+UIBGomICNHGLVBMkdq4VnzuIhZ3DtvaJaGSE2k7XvXR ibWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=PJbQ8Fo3U6VlSNve9fTQ8gfnubuUbp22YFb48a+VyQM=; b=NmUh6D5w+j2FFKsjJapFuQnkx7mUO96DpVUMz1CfdLklnjY+YpE7cF0DQDTmfz4T/g TCwOZ3qSxZ2MOpiSUT0Fu414hA89tsJK8GQyBiyzoTGKtjlo6rSEw4bHP20f0Xp5Z8Ek KG3JMljCLk31O2oSxFTwADBdve2dUOOOdtjFe4ou3vMvlxmA2ywL7nv3IFu3IQLLEJfW iK9j1KqhViOIfioX2yR1LNEqwyl25TSpvBSMGwuSjZGhM6IZ/sGx0dB140o58iH2ghPt C8Y3k5Fi73kDsU6YIKoj+ohXXEYtV9fG+GSvSRaIHEPdrHw/7HrUeohdbaj7k8IHMPQJ 6zFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=AWM10ixo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 198-20020a6300cf000000b0042a88f7b969si8888565pga.812.2022.08.23.04.21.39; Tue, 23 Aug 2022 04:21:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=AWM10ixo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238847AbiHWJ1E (ORCPT + 99 others); Tue, 23 Aug 2022 05:27:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349420AbiHWJX5 (ORCPT ); Tue, 23 Aug 2022 05:23:57 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0C7A8FD69; Tue, 23 Aug 2022 01:35:39 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6004FB81C5A; Tue, 23 Aug 2022 08:35:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF6A3C433C1; Tue, 23 Aug 2022 08:35:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1661243736; bh=b1NcyPeOU0MnkxOjOob0ZNsoHSNkdbDkrTUKTqRcK7A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AWM10ixog4v1kPye/sTjgc/xU0uwEaqz/wZgqgId6gABQkRMTLpdAK8Ssut1TZRlo 86DJTHBemhwlqhh6TamEbxTbB/SnQVZlfS+q0ZCrx028y9idO/wWo27tJ4nxp6f5x/ c0r8lGcts+eDnx2NYNwHMyass251Romq8otstCww= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Takashi Iwai Subject: [PATCH 5.19 365/365] Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" Date: Tue, 23 Aug 2022 10:04:26 +0200 Message-Id: <20220823080133.591066874@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823080118.128342613@linuxfoundation.org> References: <20220823080118.128342613@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Takashi Iwai commit 53f07e9b010b966017e32be1ca1bbcbcc4cee73d upstream. This reverts commit 980b3a8790b402e959a6d773b38b771019682be1. The commit didn't consider the fact that ASoC hdac-hda driver initializes the HD-audio stuff without calling snd_hda_codec_device_init(). Hence this caused a regression leading to Oops. Revert the commit to restore the behavior. Fixes: 980b3a8790b4 ("ALSA: hda: Fix page fault in snd_hda_codec_shutdown()") Link: https://lore.kernel.org/r/3c40df55-3aee-1e08-493b-7b30cd84dc00@linux.intel.com Link: https://lore.kernel.org/r/20220715182903.19594-1-tiwai@suse.de 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); @@ -1000,8 +980,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;