Message ID | 20230705123018.30903-1-johan+linaro@kernel.org |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1836902vqx; Wed, 5 Jul 2023 05:37:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlHcioZdFBuLhh/ufNWaaNdJ6/yKkCCZfgEipf20fasklA2BbronutaGDWoUERdFzITxyQuB X-Received: by 2002:a05:6a00:2282:b0:668:7325:e184 with SMTP id f2-20020a056a00228200b006687325e184mr21355522pfe.16.1688560633430; Wed, 05 Jul 2023 05:37:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688560633; cv=none; d=google.com; s=arc-20160816; b=uAeV/SHg3Z9Pc/OaXrno2PvTxY+tn86dtm26Zpk6iGzXQpCwhlxp7Uq8ebrle+1wBV 8vepnKmPlLZpKO543qy/ke9JkqFYSmmGT2Js8txPOfh980nRLhB/hpbn8D9/+y4cNqTO hnKG6j0QAXExbK1pKSNgzUYd5prOpxE8J8dU1Ll6rUYb3n6Njv7S1kT5Bc3Mop+XIVo0 hSQe1opHFo89LM398rdvIkIU1Nha7rMVqwa2fWSGRFQYdQ5BkbeKjwwTt3IJnWYiu5Wb fOe1o4TkrUa2ulz568eahEy9oTnAU0hf+/+dksg9D51JthehqMouEKPQSEp/LlIIhQAM K6jQ== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=bdJ8hhf6z0Z/eVDJQmE84pQOCGD6VxAmLPnIikKV8og=; fh=Izbxx5vYRCH48EunBM3t8Q/KIyf8hSWF2WSSYO5d+r4=; b=ilS2oDsZApJtTCnO6ITfhScH3sgMBCRXoJisFhYLuJCuasQz8YrmE3eNSUVQtvhDW9 IKJazD4QXLqWtMBVwxq8/dOJXkTY+rjH/R3SqkckI5pOnkZhNJz8spmDOgy/As1H9/9n 5dfSyqT/VF4csHakYeGm868TCfGC7IhszB/DWmoYkFxKxpWd012yukQNnhdjvv1p/KEh teqrWIU1L3YbDltBprsvKL4eM7zpZt7eyb+fe96nSpZCNhejG0Fb6Wl+V6YWIWLnElx4 FRd27kdZiydJe1ixFjGJRe81goJlrFcvvTyNxgb2rAGX4+WmFbyNmr98KkLvm2wI5Ahc X7VQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=m+8kTaSA; 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=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r20-20020a62e414000000b006688c47e5b4si9122913pfh.399.2023.07.05.05.37.01; Wed, 05 Jul 2023 05:37:13 -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=@kernel.org header.s=k20201202 header.b=m+8kTaSA; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231880AbjGEMdV (ORCPT <rfc822;tebrre53rla2o@gmail.com> + 99 others); Wed, 5 Jul 2023 08:33:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231609AbjGEMdM (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 5 Jul 2023 08:33:12 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD7EA119 for <linux-kernel@vger.kernel.org>; Wed, 5 Jul 2023 05:33:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2EB396155B for <linux-kernel@vger.kernel.org>; Wed, 5 Jul 2023 12:33:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F125C433C9; Wed, 5 Jul 2023 12:33:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1688560389; bh=MrLDHbklUKpi6qXlkICOurQQLrWotMYZG6zKJgQAjAY=; h=From:To:Cc:Subject:Date:From; b=m+8kTaSAKikKHrGf9TO3qYgpRMU149MjjocmjN6KKUPV8qFkr5/0Cv7qcumfx3Zsq fhOoBHzADQCEjcoN7P2rQcBbA2RfYUFchFgYcEDjrQdoGaRpluo0tgpsbNX0EKF4W1 oOhpnwmNsskUGHLolkrqjHovCh+WQobWCDMP7CxW0EduDR08SRkKsZ7z8PxIUJqvae ZjG2Q0h9sIY0v1Hdcng2TMzeexs4e2RWKWPgTnPuDa5Ykm1TrzeNIbsJTpe8SJEYur gWdybdcNAKI9ULO9sjYB0fOUHCgtQ2I1UdgzQxf/FBzzvg0x02OSK/w+edNm3HeSZh ahFg3YJg42uKQ== Received: from johan by xi.lan with local (Exim 4.96) (envelope-from <johan+linaro@kernel.org>) id 1qH1hK-000846-03; Wed, 05 Jul 2023 14:33:30 +0200 From: Johan Hovold <johan+linaro@kernel.org> To: Mark Brown <broonie@kernel.org>, Vinod Koul <vkoul@kernel.org> Cc: Bard Liao <yung-chuan.liao@linux.intel.com>, Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>, Sanyog Kale <sanyog.r.kale@intel.com>, Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, Banajit Goswami <bgoswami@quicinc.com>, Liam Girdwood <lgirdwood@gmail.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Johan Hovold <johan+linaro@kernel.org> Subject: [PATCH 0/8] ASoC/soundwire/qdsp6/wcd: fix leaks and probe deferral Date: Wed, 5 Jul 2023 14:30:10 +0200 Message-Id: <20230705123018.30903-1-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770584155179473552?= X-GMAIL-MSGID: =?utf-8?q?1770584155179473552?= |
Series |
ASoC/soundwire/qdsp6/wcd: fix leaks and probe deferral
|
|
Message
Johan Hovold
July 5, 2023, 12:30 p.m. UTC
I've been hitting a race during boot which breaks probe of the sound card on the Lenovo ThinkPad X13s as I've previously reported here: https://lore.kernel.org/all/ZIHMMFtuDtvdpFAZ@hovoldconsulting.com/ The immediate issue appeared to be a probe deferral that was turned into a hard failure, but addressing that in itself only made things worse as it exposed further bugs. I was hoping someone more familiar with the code in question would look into this, but as this affects users of the X13s and breaks audio on my machine every fifth boot or so, I decided to investigate it myself. As expected, the Qualcomm codec drivers are broken and specifically leak resources on component remove, which in turn breaks sound card probe deferrals. The source of the deferral itself appears to be legitimate and was simply due to some audio component not yet having been registered due to random changes in timing during boot. These issues can most easily be reproduced by simply blacklisting the q6apm_dai module and loading it manually after boot. The sound card probe deferral also exposes a bug in the soundwire subsystem, which uses completion structures for signalling that a device has been enumerated on the bus and initialised. The way this is implemented prevents reprobed codec drivers from learning that the soundwire devices are still attached, which causes probe to fail. Included are also two patches that suppresses error messages on component probe deferral to avoid spamming the logs during boot. These patches should preferably all go through the ASoC tree even if merging the soundwire fix separately also works. Note the ASoC tree already has the following related fixes: https://lore.kernel.org/lkml/20230630120318.6571-1-johan+linaro@kernel.org/ https://lore.kernel.org/lkml/20230630142717.5314-1-johan+linaro@kernel.org/ https://lore.kernel.org/lkml/20230701094723.29379-1-johan+linaro@kernel.org/ https://lore.kernel.org/lkml/20230703124701.11734-1-johan+linaro@kernel.org/ Johan Johan Hovold (8): soundwire: fix enumeration completion ASoC: qdsp6: audioreach: fix topology probe deferral ASoC: codecs: wcd938x: fix missing clsh ctrl error handling ASoC: codecs: wcd938x: fix resource leaks on component remove ASoC: codecs: wcd934x: fix resource leaks on component remove ASoC: codecs: wcd-mbhc-v2: fix resource leaks on component remove ASoC: topology: suppress probe deferral errors ASoC: core: suppress probe deferral errors drivers/soundwire/bus.c | 8 ++--- sound/soc/codecs/wcd-mbhc-v2.c | 57 ++++++++++++++++++++++--------- sound/soc/codecs/wcd934x.c | 12 +++++++ sound/soc/codecs/wcd938x.c | 59 +++++++++++++++++++++++++++++---- sound/soc/qcom/qdsp6/topology.c | 4 +-- sound/soc/soc-core.c | 6 ++-- sound/soc/soc-topology.c | 10 ++++-- 7 files changed, 122 insertions(+), 34 deletions(-)
Comments
On Wed, 05 Jul 2023 14:30:10 +0200, Johan Hovold wrote: > I've been hitting a race during boot which breaks probe of the sound > card on the Lenovo ThinkPad X13s as I've previously reported here: > > https://lore.kernel.org/all/ZIHMMFtuDtvdpFAZ@hovoldconsulting.com/ > > The immediate issue appeared to be a probe deferral that was turned into > a hard failure, but addressing that in itself only made things worse as > it exposed further bugs. > > [...] Applied, thanks! [1/8] soundwire: fix enumeration completion commit: 27e0c9f08ac622db7b907c126249dd23367867ab Best regards,
On Wed, 05 Jul 2023 14:30:10 +0200, Johan Hovold wrote: > I've been hitting a race during boot which breaks probe of the sound > card on the Lenovo ThinkPad X13s as I've previously reported here: > > https://lore.kernel.org/all/ZIHMMFtuDtvdpFAZ@hovoldconsulting.com/ > > The immediate issue appeared to be a probe deferral that was turned into > a hard failure, but addressing that in itself only made things worse as > it exposed further bugs. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [2/8] ASoC: qdsp6: audioreach: fix topology probe deferral commit: 46ec420573cefa1fc98025e7e6841bdafd6f1e20 [3/8] ASoC: codecs: wcd938x: fix missing clsh ctrl error handling commit: ed0dd9205bf69593edb495cb4b086dbae96a3f05 [4/8] ASoC: codecs: wcd938x: fix resource leaks on component remove commit: a3406f87775fee986876e03f93a84385f54d5999 [5/8] ASoC: codecs: wcd934x: fix resource leaks on component remove commit: 798590cc7d3c2b5f3a7548d96dd4d8a081c1bc39 [6/8] ASoC: codecs: wcd-mbhc-v2: fix resource leaks on component remove commit: a5475829adcc600bc69ee9ff7c9e3e43fb4f8d30 [7/8] ASoC: topology: suppress probe deferral errors commit: b6c3bdda3a7e43acfcec711ce20e7cfe44744740 [8/8] ASoC: core: suppress probe deferral errors commit: f09b6e96796056633453cb0d07b720d09f1efc68 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark