Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1931420ybl; Tue, 3 Dec 2019 15:12:47 -0800 (PST) X-Google-Smtp-Source: APXvYqx8OMlF0cB5RCjYWyYEtmF2imAtB8aegSNVyQ/YpsFCQHOZT69GQHFRsWKGja/5/f6BVy2I X-Received: by 2002:a9d:22e3:: with SMTP id y90mr315149ota.218.1575414767416; Tue, 03 Dec 2019 15:12:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575414767; cv=none; d=google.com; s=arc-20160816; b=a/3uR14gAUPn9hoNidqza3aPkVVDkxUwEMFZ7cqyKDryHlVSzPhn1Nuj/LYkGm6DR7 69CXu1Ql0fSCMBxJ+kgHQTEGkkU3rJwWSeYbhBTkgetmYwPlIE5s/79VZkYnVKRVsiGZ K1NxrTM/Lw5kRgbATWGiaCp6xNS8rCxKXbs0NAF1DfoIS10FqmpUmi4CtF2RiVFzYR/n mn5AQS4TOCNPf3eLB1Tp3dzBa39AX5X1n0t5osV87FPgeeWbbJdz6QuMuLSPl0oyvoVU z4PyjDmIuw4Txa6IS9uQy1CwaZDv6wJxot8TuPEp58AA5O+aZSNVZQS7Dmpju/rjQ3Ax Kv5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GXgeiHtc+wy0gNcAGtBjCpSvzB987YxW0/0Af9zIQRM=; b=VkYakQ7ggIXC/aZlrV/SI5vXt+hrwGtHEH/nC9FkxKCobfgQc8W34hq0+GRkKUStc7 iKtXDcd/A9EPBwLgqa/sX1IP0wdOrkwlABMp2erBjiQ+PC+w4tP9Hlx/1E8uGbMDLlIZ YlD6tIGmth1brfkcLjrZ4twJt+kxDxka0dtnSdCd+UWGYEmWWze4VomY5EBOA+fSuZtq 10+sAjE66aXyJJB6TxCEbjeGJTo5RmDxMVI2XuPv4gp57wpmT8hwDPZ0PQW2b7CIykOs OzhErHGJVeEaOhceeEzIhtM5q1n+pgyMuP+aZgfCwlbkiD5T4xrmIzMGJ2ALorh1qKzS P1Og== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=kCNJyaOu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w16si2262124oih.154.2019.12.03.15.12.35; Tue, 03 Dec 2019 15:12:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=kCNJyaOu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728690AbfLCXKq (ORCPT + 99 others); Tue, 3 Dec 2019 18:10:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:56908 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728183AbfLCWmG (ORCPT ); Tue, 3 Dec 2019 17:42:06 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6AB3920866; Tue, 3 Dec 2019 22:42:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575412925; bh=eJH0z9YV52yUow8v5Zbm7E8SDnsfdte/C1UBeSg0ZCw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kCNJyaOu8LR2TiI/20JUNFRHyFfhOiCNMNJfB16Pb/04MgSlwiQ97/yFbP2ChiZi7 MI5WKp40DcrMegSFxfdDnWNLQaXQp3JH9BBkER3lDjYwtJF4YMiGFRSgorT8E8XM+D oDi107jvpgk3jln1YtaXr7BRbDbaLHMtf46mgAaI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kai Vehmanen , Pierre-Louis Bossart , Mark Brown , Sasha Levin Subject: [PATCH 5.3 042/135] ASoC: hdac_hda: fix race in device removal Date: Tue, 3 Dec 2019 23:34:42 +0100 Message-Id: <20191203213015.066241334@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191203213005.828543156@linuxfoundation.org> References: <20191203213005.828543156@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kai Vehmanen [ Upstream commit 5dc7d5bc9627eb26d33c7c7eefc467cf217f9326 ] When ASoC card instance is removed containing a HDA codec, hdac_hda_codec_remove() may run in parallel with codec resume. This will cause problems if the HDA link is freed with snd_hdac_ext_bus_link_put() while the codec is still in middle of its resume process. To fix this, change the order such that pm_runtime_disable() is called before the link is freed. This will ensure any pending runtime PM action is completed before proceeding to free the link. This issue can be easily hit with e.g. SOF driver by loading and unloading the drivers. Signed-off-by: Kai Vehmanen Signed-off-by: Pierre-Louis Bossart Link: https://lore.kernel.org/r/20191101170635.26389-1-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/hdac_hda.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c index 91242b6f8ea7a..4570f662fb48b 100644 --- a/sound/soc/codecs/hdac_hda.c +++ b/sound/soc/codecs/hdac_hda.c @@ -410,8 +410,8 @@ static void hdac_hda_codec_remove(struct snd_soc_component *component) return; } - snd_hdac_ext_bus_link_put(hdev->bus, hlink); pm_runtime_disable(&hdev->dev); + snd_hdac_ext_bus_link_put(hdev->bus, hlink); } static const struct snd_soc_dapm_route hdac_hda_dapm_routes[] = { -- 2.20.1