From patchwork Mon Jan 2 20:30:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38195 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305729wrt; Mon, 2 Jan 2023 12:33:17 -0800 (PST) X-Google-Smtp-Source: AMrXdXv4l+yMtr+jx6or+mu+yahpX4Q0/nHc1jUf304uwJ3/DAEeSU1OlND+b6s5/iGa1gPf1971 X-Received: by 2002:a17:906:d216:b0:84c:cec2:8c84 with SMTP id w22-20020a170906d21600b0084ccec28c84mr855762ejz.1.1672691597085; Mon, 02 Jan 2023 12:33:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691597; cv=none; d=google.com; s=arc-20160816; b=W2rNaRd3bhg80iYH82WZWLxtpT3tzY0ri3YG7M0mv2qnr4Y2EyLrHydtxpylkemOE+ U9bABk8NNd8dwnORiOy6Tpsl6GD9/BrUjkVUo8kSV7sCyCT0+uUQiW/ZyhKzi9U2XKz6 qojSC5e+uqwoWFUf3rqG/wrOYd4yqn+6qnIeU/5bMcUxBKo9dMTYolYn4H9C+uRBCSAs jJ6tUK/FXFGeHwMbEcRR/AgKi/PVzAIP6q1XLb0kSmY8DisBkU1wUmJir5LOzvecwvJV D+oYkMoH20pSgXG+VHADYe49mlU76jA9j2dpylZmKKg8G5DBArtPpmiZop1dm1TccOu5 PMUA== 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=FwMUqHWO1wgjb/uaevA2iFGpFCiYunlBDA9k368RtcQ=; b=vNZtO8Ix8+LjcCEAx/+hO6zWrQ2pNGCTmbFRNUiJUZv8Q1CuBIhyz25wnISMF7+kdl o75FEZNaAoPx0GiC+51HhG27mgnV0N4NeY6eehBh5UcNqNyALj2d5GSih+HpN1QDNbT+ qXCWj4qjBw/dlFxXnOUEDzzo4J2EWetfM6aUMAjk4XSjWqi/WAjYQl366hS4cj37sgB/ UAoESrGJ32OjFG1XaqpCMoZ8CaZt4iupeBPNRYO3PZytCyDc5QDbOZQu2I8Xd9jLKpT6 MLwpekVyd58CoXNQCj/5sglskGnNnz+Y1/dMrEVz/WWRCGi/AzEVMNKNrdSvFY+PhmC8 nuIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=B57ISLuw; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wt8-20020a170906ee8800b007c4f9ce306esi25235068ejb.729.2023.01.02.12.32.53; Mon, 02 Jan 2023 12:33:17 -0800 (PST) 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=@intel.com header.s=Intel header.b=B57ISLuw; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236508AbjABUbK (ORCPT + 99 others); Mon, 2 Jan 2023 15:31:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236240AbjABUaJ (ORCPT ); Mon, 2 Jan 2023 15:30:09 -0500 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D26DCBF40 for ; Mon, 2 Jan 2023 12:30:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691408; x=1704227408; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Tuh2SSmJnpDPTtlBWbyywMESzagl6YRuFPwYuCTfJEU=; b=B57ISLuwBgq8TxjmNaXZKxuZVh4xOrbu0uxZP68impz879GUwnBkeMg4 QWxopAPKtGYddL/HLTFCF8HYUJBBLjf9etZ4aTtVg/T2VubO8NCgSx9y/ f4/cz4V+LSKpYiqWRXI8o7jhYth7yteYva8Y+HI1DdXQzSm2sfJJaRbvS PNYQJAek2ZfrjVs9s+l9et1EeWGvqCCxro3soZ4juCxStLdWS8ttHxMPi +9h1NEjW/bGLLMQL6lEPDwvKtsZeX1STXakFkjBS9O6Olgg065s/WlDDS fZ1B3tDSa7v6sljbdi/zasfeLQKkbDCWG6WhybS/C+QAthSqRSUHFIiHn w==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="320252179" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="320252179" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="685170309" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="685170309" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 02 Jan 2023 12:29:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id A66E3F4; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 1/6] ASoC: amd: acp-es8336: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:09 +0200 Message-Id: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944263980489648?= X-GMAIL-MSGID: =?utf-8?q?1753944263980489648?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: 02527c3f2300 ("ASoC: amd: add Machine driver for Jadeite platform") Signed-off-by: Andy Shevchenko Acked-by: Vijendar Mukunda --- sound/soc/amd/acp-es8336.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sound/soc/amd/acp-es8336.c b/sound/soc/amd/acp-es8336.c index 2fe8df86053a..89499542c803 100644 --- a/sound/soc/amd/acp-es8336.c +++ b/sound/soc/amd/acp-es8336.c @@ -198,9 +198,11 @@ static int st_es8336_late_probe(struct snd_soc_card *card) int ret; adev = acpi_dev_get_first_match_dev("ESSX8336", NULL, -1); - if (adev) - put_device(&adev->dev); + if (!adev) + return -ENODEV; + codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); if (!codec_dev) dev_err(card->dev, "can not find codec dev\n"); From patchwork Mon Jan 2 20:30:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38188 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305286wrt; Mon, 2 Jan 2023 12:31:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXsJESyqtJRV18tHqEK4k5+KGU+WoSmwVy/uc4KV6dPFWiYqVhnLLAzSRCNgZ8qnxKuiL6eB X-Received: by 2002:a17:906:9f28:b0:7c1:6f1f:6f8f with SMTP id fy40-20020a1709069f2800b007c16f1f6f8fmr7576339ejc.6.1672691508146; Mon, 02 Jan 2023 12:31:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691508; cv=none; d=google.com; s=arc-20160816; b=zAY0FRp3PUHurcHQi/EzPiEt9GtN/yp5bH4Zg/GQaXjfyCIpeLlNVM38owYzjiU4d4 zfKszBRxkOvJz3mhK/3MwOX889cgdyeRkpbVf+rDUkihJpbfRQGy2dMpAwYx7O90soZ0 GucQ4nrSrc7IyB7MDmw8j1N0dwjiR5dch5kFdztyaxsBmyXbRbHiZZwSIzSCzOjQ6z2S t9d8wjmVT2SfCnpIsWyeiIiDYBVe2QMWFsHIq9lb8VNzjtonhEWtGCxTQx4zRPMGxPqr NN2xCv8yxrPjRXIq/A6oGNtMx1INhSRE9IgBAH9E8ygs8w0P6nE9YlrK0XOnxoB3BtpI xOdA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8OiO11gGpAQn5/SsGr2FNtZgeKKzvSda0MVDACXR184=; b=zVZ2zXsqnaCMFXZnFzumM43MpSNYZSDKTzgqc4AzODMezqq54J4Bf13bNLZPppNT9v 5t7pFSuM8sSFOGly0nswd8J85K831FYmE5JK3G86NEqRo/BxS6W5gAi2oUqsSGOE/51o aeYqoHw0KIrCiy50OzskBp1vuuEB/dHa1ZlS/SNDXjHTN3qwoo6iXf3n34Xk0EUrHEZG wqq74Ukz4ga9qXLdHtrrsDYR2FxNydU635HLzYym8v5kXl6nVYpAc39jXH56HuQzLPtH 61Vh9xbIObCm/m9ZB72dhQz+rXhozQFWSFebAZB3sB3kLwsu6owjKS1zCbhdXArS7PZs R1Tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=DCeeyZDH; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sg42-20020a170907a42a00b008366ae33e68si25427127ejc.348.2023.01.02.12.31.24; Mon, 02 Jan 2023 12:31:48 -0800 (PST) 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=@intel.com header.s=Intel header.b=DCeeyZDH; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234698AbjABUaP (ORCPT + 99 others); Mon, 2 Jan 2023 15:30:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236058AbjABUaD (ORCPT ); Mon, 2 Jan 2023 15:30:03 -0500 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F4C2BE3F for ; Mon, 2 Jan 2023 12:29:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691388; x=1704227388; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XBGxwjOTps8fLgKAqKNuNDLJBvUHEDjGUgWj7WtL0nw=; b=DCeeyZDH4SdWQdedMfu6aFwwmmPs3iTaiyT0mF7KX2DLh6C1CSuJBMeU yXP3OofJO3bps1Qv0e5lmVrP8UBryO70+hnZ9+c/5Fe/dIE7gPNx6xxF3 RWmRt7wVhfkMNlOwXea13qeOFBjJ8hkJMc8/zPopFcI3aKVf8oU7H80/i 8UfqKc8rjKAqo6LZJn4+wUh/nwFmGpLgQWT8jSXjSXYGMuoHTj/EaYULj 74RBKOXdtKqXJOF1o9YK7NkD8akrNOdozstJkt/EvFCFc+EfeGg1+fpuh xJmqMuDA1r7j9uN2BCHnGp++PjkhpKtsPJowuBKnOYo99BD0kEuJk/0jE Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="321602403" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="321602403" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="717889959" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="717889959" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga008.fm.intel.com with ESMTP; 02 Jan 2023 12:29:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id B3ECC84; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 2/6] ASoC: Intel: bytcht_es8316: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:10 +0200 Message-Id: <20230102203014.16041-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> References: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944170613187161?= X-GMAIL-MSGID: =?utf-8?q?1753944170613187161?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: 3c22a73fb873 ("ASoC: Intel: bytcht_es8316: fix HID handling") Signed-off-by: Andy Shevchenko --- sound/soc/intel/boards/bytcht_es8316.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c index 09d1f0f6d686..df157b01df8b 100644 --- a/sound/soc/intel/boards/bytcht_es8316.c +++ b/sound/soc/intel/boards/bytcht_es8316.c @@ -497,21 +497,28 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev) if (adev) { snprintf(codec_name, sizeof(codec_name), "i2c-%s", acpi_dev_name(adev)); - put_device(&adev->dev); byt_cht_es8316_dais[dai_index].codecs->name = codec_name; } else { dev_err(dev, "Error cannot find '%s' dev\n", mach->id); return -ENXIO; } + codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); + if (!codec_dev) + return -EPROBE_DEFER; + priv->codec_dev = get_device(codec_dev); + /* override platform name, if required */ byt_cht_es8316_card.dev = dev; platform_name = mach->mach_params.platform; ret = snd_soc_fixup_dai_links_platform_name(&byt_cht_es8316_card, platform_name); - if (ret) + if (ret) { + put_device(codec_dev); return ret; + } /* Check for BYTCR or other platform and setup quirks */ dmi_id = dmi_first_match(byt_cht_es8316_quirk_table); @@ -539,13 +546,10 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev) /* get the clock */ priv->mclk = devm_clk_get(dev, "pmc_plt_clk_3"); - if (IS_ERR(priv->mclk)) + if (IS_ERR(priv->mclk)) { + put_device(codec_dev); return dev_err_probe(dev, PTR_ERR(priv->mclk), "clk_get pmc_plt_clk_3 failed\n"); - - codec_dev = acpi_get_first_physical_node(adev); - if (!codec_dev) - return -EPROBE_DEFER; - priv->codec_dev = get_device(codec_dev); + } if (quirk & BYT_CHT_ES8316_JD_INVERTED) props[cnt++] = PROPERTY_ENTRY_BOOL("everest,jack-detect-inverted"); From patchwork Mon Jan 2 20:30:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38191 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305298wrt; Mon, 2 Jan 2023 12:31:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXuBa34CnPtdTnU5IIMDazM2Wkd8+pG6Xx1wYP+SDfHtO2BZRE4pMU4CsslfsnnP98QgkaYg X-Received: by 2002:a05:6402:541a:b0:46c:e974:fa49 with SMTP id ev26-20020a056402541a00b0046ce974fa49mr7810572edb.4.1672691509570; Mon, 02 Jan 2023 12:31:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691509; cv=none; d=google.com; s=arc-20160816; b=RM94aGbu1CP3j9ogh9K7i5n3bGJ27kBK604LWIRCN6erGNRlH0FejbT0qjb1czJh2k 4sNkntY1L+iSMYWtEyXlIAOXZOAcAFQDF/5m7grbF0qGdYra7fs4YJSwb4ZA4Ie7loOa 8cn30IyfTeHD5sjDoFhC6VM5JcxHuy2UWWMjNu7L1a9hFeClPdHCk+aBTlAlCSMlfuYj +WWcGRmt/Sc9gzSPNqnK0yyNSZsznEZxVXIswGTYQgZL240CezE7U35to94m15lQW7Jp 2k/qfjrpElHfzGvDVc8U3aKn6FJWZAkWbvoGgqrqxr/WRSeQ2tMP5Nw/k21NxtQGpvTc hNZA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=yYf0Dl8HLvFQQjcIBdIJGh9OYpD31qqpsBsTnnGAu40=; b=AWdjgGTAXAUflPWBXxJd3ExrrkwFcWc/3/RnC78IV8BOJr7NeWBpAjxk2KPqc3oOeZ OcoinJBWd0/wFq4JzbiQ6EInkcx4pTPEqnESatdtmKiSvPtf/2tMEmMxH2ALookpSfBs by2tKbbY/aVAui85NEUItSxfkJ3vEkbQAlJmRBcG8VDWNawzK5jyDLGSFPkGD4n7nVx1 kcz13fjq0c6g6w4J7t9c8V0ZsljQwTmTQCMGc5UIp1QwToeSInat+0D9OuzwnnBuvHfl 0p4zL257JHeT35RtOyqt1P3mb63aIj+FxezPCA2Y+yYwwTea8pAN9NexCRv/hXwa4KXK M+mA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=RSSnGtvf; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b12-20020a05640202cc00b00483347f1b8esi20947138edx.402.2023.01.02.12.31.25; Mon, 02 Jan 2023 12:31:49 -0800 (PST) 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=@intel.com header.s=Intel header.b=RSSnGtvf; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234803AbjABUay (ORCPT + 99 others); Mon, 2 Jan 2023 15:30:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236202AbjABUaJ (ORCPT ); Mon, 2 Jan 2023 15:30:09 -0500 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2C84BF78 for ; Mon, 2 Jan 2023 12:30:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691408; x=1704227408; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=REg3sRJeCK62YhYgQJa6h4HICvITSloNV8ZmQioK800=; b=RSSnGtvfk46gMt4nNFmlGJChgpVJ5mpV+iDWLAf1VTpCtRi7QloJCmpP WTifXL1s5z4t40QfgTkTeFRRibF+s5e+ioZA4nfK2mvOqj3xuYnovJLJV eykbxjuFMkMRK6bJPgmKMbgjPkikedo9cD2plqvk81oI23S7Uvhz+l7Fk pmh1YbzKtc9pJh/K2DLRXWKjOrThVyBlt0RM50Z9kRLk271Sn8QdzoZ8e Ul6vCx0jXYgdQyH8wOLVm4ZsTGSmlLYj59t7eKhWix9Yd9UMJ0EjJiMY5 cGmYBbEGtD0DIcHZd9tvOLJGaZsljHvOl2b2kw5keN2WEXFy7Jr3ZeDqA A==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="320252187" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="320252187" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="685170314" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="685170314" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 02 Jan 2023 12:29:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id C1F4519E; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 3/6] ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:11 +0200 Message-Id: <20230102203014.16041-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> References: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944172189746284?= X-GMAIL-MSGID: =?utf-8?q?1753944172189746284?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: 02c0a3b3047f ("ASoC: Intel: bytcr_rt5651: add MCLK, quirks and cleanups") Signed-off-by: Andy Shevchenko --- sound/soc/intel/boards/bytcr_rt5651.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c index 81ac6eeda2e6..8fca9b82d4d0 100644 --- a/sound/soc/intel/boards/bytcr_rt5651.c +++ b/sound/soc/intel/boards/bytcr_rt5651.c @@ -922,7 +922,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) if (adev) { snprintf(byt_rt5651_codec_name, sizeof(byt_rt5651_codec_name), "i2c-%s", acpi_dev_name(adev)); - put_device(&adev->dev); byt_rt5651_dais[dai_index].codecs->name = byt_rt5651_codec_name; } else { dev_err(dev, "Error cannot find '%s' dev\n", mach->id); @@ -930,6 +929,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) } codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); if (!codec_dev) return -EPROBE_DEFER; priv->codec_dev = get_device(codec_dev); From patchwork Mon Jan 2 20:30:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38189 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305290wrt; Mon, 2 Jan 2023 12:31:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXuqlNFx1jqcMSZzLUiY87CiA/j1xpH7c1Wcyows+uOrZ+WLA9XuaTjBD300tEfXc6dAN7u6 X-Received: by 2002:a17:906:99c6:b0:7c1:539b:d027 with SMTP id s6-20020a17090699c600b007c1539bd027mr8760756ejn.6.1672691508554; Mon, 02 Jan 2023 12:31:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691508; cv=none; d=google.com; s=arc-20160816; b=flN1scsM6SdCpsw+4S3X80oknpoYf3c5KIZxCzLBICVfLgXDNBgqhqOsOQz85ZYySm bqoF9H7UQjkttYgw6RhSuzeIlii7caoaQN4WxUQ0Tk7TFH7Sd6mGgf4Mfs5HCMb6gcvT n+9a/eA6JE8ewGUTV9SFeZyUfSyZaGkgp7K+7HAX47WCzr+KnjB5Rvz4oWxYbBjSb1RP yxVWRdAw3m2V+foB9zZ082ACyIc2TItIxzvW4ijsPFEKBj/WVdJeBLcBQ3fRZsH6rfsk 3kHYwp+/WQorbI4CyRjnz/iyuYYuXtgDoS664mkLP86O9+mCv8Dmk7h9rBxKvucEgPqn XYfQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=VZ/j9PUNSRbrpqt72oBcOtwDVQEo577/p/pcSJYLD2Y=; b=kUgrJxh8dHImFBqqIqvpyw9TWSlo9K8ncXNI7jXyb1PdtWRn2hpuXkZsSyqRtefy9n Acoa2M2jRmFh54gfawFpqdvPm2v6h8Obd/uJ/Vjri9N6MkttMA5h0YzWOfEF6WzNAfVz 6Tkfy8y9z5rXjtWHB/V3NFsNJWOJod92Ecle03OB+EoIEFbqkk2JeolQeD4IEl9DRIch zLrjNar13xv6WOWnJsdW7LZ5sYCwGeA+jFhXNOL37Kte7vbXbwKche11SQL3O1l1OjUV qLjJPdxPIV5nxAHiouV1noA7NjxdZvSOmblIqi2egeY4ud5MuBIoGQkSy68rNMaQVjhU 3A4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Ty6ewvzK; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h11-20020a50ed8b000000b0046a0331778dsi23749521edr.118.2023.01.02.12.31.24; Mon, 02 Jan 2023 12:31:48 -0800 (PST) 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=@intel.com header.s=Intel header.b=Ty6ewvzK; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235364AbjABUaS (ORCPT + 99 others); Mon, 2 Jan 2023 15:30:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236360AbjABUaG (ORCPT ); Mon, 2 Jan 2023 15:30:06 -0500 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3928BE16 for ; Mon, 2 Jan 2023 12:30:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691403; x=1704227403; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7rKbo4AdxYG+GzOO5clxIrqEj+fvxpX/EkpIQCJnFrg=; b=Ty6ewvzK3YNdY+ISZQtcxENPTAfdBo3eTxBNGz8DpKcElYB89bFWbjcT twFDhrjILWBkjr1kzp5fQrkgzX0CZNNo/27beiUOslgs8IQloT47mfKUU 06ITZeNhN2OA/eEsmRHWER6UZ3BXYxTnib/S7MtmBa+U5+KBfhd1qbEY2 ShcPr4H/6eCu3NFLqZxSRyZy3LGTB6JUqyOMoOcPd1Qfibz9BGRu7SSxI gvGiD7MBoR4OsmVMGLKskeIlezpn/TIhV1TevakQAQLscUSPp+IwhSuJu d/nZyjeKrK53WnYPHwN8DSaCF/PSdDCzXodJVQdbx7Wr8y3tOHd3JPSy/ Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="321602411" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="321602411" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="717889964" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="717889964" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga008.fm.intel.com with ESMTP; 02 Jan 2023 12:29:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id CC47B162; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 4/6] ASoC: Intel: bytcr_rt5640: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:12 +0200 Message-Id: <20230102203014.16041-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> References: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944171139386880?= X-GMAIL-MSGID: =?utf-8?q?1753944171139386880?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: a232b96dcece ("ASoC: Intel: bytcr_rt5640: use HID translation util") Signed-off-by: Andy Shevchenko --- sound/soc/intel/boards/bytcr_rt5640.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index 4699ca79f3ea..79e0039c79a3 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -1636,13 +1636,18 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) if (adev) { snprintf(byt_rt5640_codec_name, sizeof(byt_rt5640_codec_name), "i2c-%s", acpi_dev_name(adev)); - put_device(&adev->dev); byt_rt5640_dais[dai_index].codecs->name = byt_rt5640_codec_name; } else { dev_err(dev, "Error cannot find '%s' dev\n", mach->id); return -ENXIO; } + codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); + if (!codec_dev) + return -EPROBE_DEFER; + priv->codec_dev = get_device(codec_dev); + /* * swap SSP0 if bytcr is detected * (will be overridden if DMI quirk is detected) @@ -1717,11 +1722,6 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) byt_rt5640_quirk = quirk_override; } - codec_dev = acpi_get_first_physical_node(adev); - if (!codec_dev) - return -EPROBE_DEFER; - priv->codec_dev = get_device(codec_dev); - if (byt_rt5640_quirk & BYT_RT5640_JD_HP_ELITEP_1000G2) { acpi_dev_add_driver_gpios(ACPI_COMPANION(priv->codec_dev), byt_rt5640_hp_elitepad_1000g2_gpios); From patchwork Mon Jan 2 20:30:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38192 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305301wrt; Mon, 2 Jan 2023 12:31:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXt0gM2cyd9PxTrQJviRrmr8AGjxyBCAhjkti8ngE27rRTZGguIt2zYV6wg+e61UE1YGiUPI X-Received: by 2002:a17:906:9c8e:b0:7c1:6150:ad2b with SMTP id fj14-20020a1709069c8e00b007c16150ad2bmr9285611ejc.0.1672691509881; Mon, 02 Jan 2023 12:31:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691509; cv=none; d=google.com; s=arc-20160816; b=xa4H2vETlN3g9T5CaPvLNspxoKQtD8vdD7W/DDWgKZl+7Aos5FpXY7pCZ3Ia48CFNe U1bl6QU9wyUMwsl6fNMR/9+l4moCPZxwV4iPqD62Tk99HhFNtTWo8m2bhbCnRre/ue5U D4OXYR+TBPce8O4AhKMsSnq6R+wxowEwnah2PO+tE9LtV98WCzfRVjnpnV0m5V/OCcal Q0egj8w9dW2Z+j4K8D/oTdwja4aWVpqLxR7ktIlzIC0Fy32A5cQN2xMQ0rrE66bvCbQN xsdMvpogobOBWuATXAy4tcddW78IlHnBDBmo4k4QvIOBbOTgagEfJI55z9wR7i+v8QlP +xMw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Wk0/bnxEHUueHhjb7cEOTGijZnmko6H2F5VXSA36FHA=; b=ktVRwMNMdSEtx/wLz0D9JuAPbRoTCmnijEwKe+BKdnXWFlxb7GG5QEuUdXSmx9fw0k xNVUVSM/dOBSYVihR6hRBLhnGqfaW/GisLXlVa2e+Y5QeKqGqSBkPhJMne5X6bxko02M LS6uVr1MAEFpca/gcGC+zGcVUVe23/1ogupiFGVGGYhSaL3WaGy3vLHUBfaYV5044x10 +86cwsOeiHo/8m0ADX9TY0EdTXss7jBVLtI7U7OcSGuWsahwVy5XCLqctwaXAXQmIsxR nOqghHj9+RmoY/8TcaDFWKk1E1sJ1j7iOiw4NIf+3r1Xcjcc1G6YPxdV7UBWj+5MgJ0R xHpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=RFH3Gp0V; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wt8-20020a170906ee8800b007c4f9ce306esi25235068ejb.729.2023.01.02.12.31.25; Mon, 02 Jan 2023 12:31:49 -0800 (PST) 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=@intel.com header.s=Intel header.b=RFH3Gp0V; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236022AbjABUaX (ORCPT + 99 others); Mon, 2 Jan 2023 15:30:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236368AbjABUaG (ORCPT ); Mon, 2 Jan 2023 15:30:06 -0500 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0353FBE1A for ; Mon, 2 Jan 2023 12:30:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691403; x=1704227403; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jaaT5T3K18xgkyMdPptdmWzbRbrNy2o8GnbiBUb2YQg=; b=RFH3Gp0VtnTiD9Zs2wqVbbgn0KECLOPMWXn8EGFAmpIHs6zdDgiEWA4v hDCBMrgYr0LQgWx6aTFSXq8QoEwITWHvSzaP/anxbujPQN3H3DZBq2zB8 eHE1jvjyptzpBWWYZ47pSJHvQ6NjI4nvOkTdpqaNSfD4vuQMvzOsfFWbM +AhjpMzqOAZQUXnq/BT14PI0vJGqRUYBi0NTDNSfYzhagK6b50XmW4aaE uFa7HxBAGd4e5w3SY9Vo+MJ4KjywSfrvNMz0Dykv1aBA5BbA1oq18f8LK M9otb+oQSr7WNZunpwDTbQNha0xZcmineWFtH4L69VHPi6QnzQtyELKyR w==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="321602419" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="321602419" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="717889962" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="717889962" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga008.fm.intel.com with ESMTP; 02 Jan 2023 12:29:44 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id D6DAF1CA; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 5/6] ASoC: Intel: bytcr_wm5102: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:13 +0200 Message-Id: <20230102203014.16041-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> References: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944172713656247?= X-GMAIL-MSGID: =?utf-8?q?1753944172713656247?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: 9a87fc1e0619 ("ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102") Signed-off-by: Andy Shevchenko --- sound/soc/intel/boards/bytcr_wm5102.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/intel/boards/bytcr_wm5102.c b/sound/soc/intel/boards/bytcr_wm5102.c index 1669eb3bd80f..c0706537f673 100644 --- a/sound/soc/intel/boards/bytcr_wm5102.c +++ b/sound/soc/intel/boards/bytcr_wm5102.c @@ -411,9 +411,9 @@ static int snd_byt_wm5102_mc_probe(struct platform_device *pdev) return -ENOENT; } snprintf(codec_name, sizeof(codec_name), "spi-%s", acpi_dev_name(adev)); - put_device(&adev->dev); codec_dev = bus_find_device_by_name(&spi_bus_type, NULL, codec_name); + acpi_dev_put(adev); if (!codec_dev) return -EPROBE_DEFER; From patchwork Mon Jan 2 20:30:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 38190 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4305296wrt; Mon, 2 Jan 2023 12:31:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXt56osp7JUTHwhfU/O6ntZSqSDoyLRIGiuFfjpR7aW8pYbUtemNLbvb8YRuNoXclZrgIOAk X-Received: by 2002:a05:6402:4013:b0:47e:869:9115 with SMTP id d19-20020a056402401300b0047e08699115mr9004266eda.3.1672691509554; Mon, 02 Jan 2023 12:31:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672691509; cv=none; d=google.com; s=arc-20160816; b=j0im4Ti3dw4Nx7tXdWPf8ZgZ8rkIJrsau/A/UJ9BDmN6TfpE3dyNhB4ovzgryofy0f xbEaq9YsBBv485NlarzKz9xEFlxKJK4Yrr2ecY7gPmdYAPYaUa/lzG7rd28VAI7UjEs4 uiBTG+sI5mWcFgH6nBC1WWIKeM6+FJNWJ3JfZL+O0otdceGlVXT69NmGCG0Xiz3v487o 04WNLtMripQd32QxKQItPuIYtxEHttWyx7Du8t2lbjB/HrMeZX5RrnZ//OMAbITdJ9sL Uwdp/suwAxuZ2jZXp9bjL/UX7+bYfv61YB8ADRL8eJJA9kG1aE7tijk1HohnzUAImwzv QYjg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rBnjsvJ+ORALn3yChF+iiOtRb58Z60gnnnKAEnJrQf0=; b=aYyBkeLNAvzeT0NgvCTVU8Z6z62PO/h9waYC1EimXpqLPNlO0gwHSlCtxxX21jwXw0 r19yw7G0AUahUoxJw9z0gDYSqQXKt4HqObnQ9iy2oAxTuWmycnESfikBilXGLEzwTDIA 3o6ki8VqlSLeCr5Np3MEbgudHVtgQKyaqoEKKOtQ/VpqHftBBnLlKdRG6zZNk1/HK2aA 7epua2vJqBc8jCDvlRdNxB/F34JJaiuwyQm1ex0kqRsEU2bDe2He5zXc242QolkyVHbL s7FOgyWmO98L7V6o5zxVyew24wXRkI5vVPEoF1EH5Su/AhucTmKRtQ+wvI1XXlskkOvJ weNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kJrhSTq3; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b11-20020a056402350b00b004854e1d2682si21382653edd.249.2023.01.02.12.31.25; Mon, 02 Jan 2023 12:31:49 -0800 (PST) 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=@intel.com header.s=Intel header.b=kJrhSTq3; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236395AbjABUbA (ORCPT + 99 others); Mon, 2 Jan 2023 15:31:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236249AbjABUaK (ORCPT ); Mon, 2 Jan 2023 15:30:10 -0500 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5620ABCBD for ; Mon, 2 Jan 2023 12:30:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672691409; x=1704227409; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LwgfX1nuvuxjaGMvY2eRkuLAJY23wtVpSS451UENzDA=; b=kJrhSTq3w1elRqTLabgpWfuvpzrp5CQ2ca71fluSeckzFMftxVi77T8n oqdnePnP9xgXJZqzrJWmO6Tl/BTTemJxOsFJ28tEZ1SjsUTddvN9+3zCO QUEmiM1blHpyQFFe6RAFvYoDpRCGFl7NQBPuiqpLE8tiwkhHWcJ+CcS/K F8TU6hoF+mZzRaZxjAGJeYkiDjBmwhOo6570Q8qQuckE/ujHmNp9wHPn5 PV+PdjKZVyM0MlzeiGF1FAn0rEP4YjdV2bEyD4wFpAde/KYmNuOd63qbE k9kke1/ooqmq8GUC8cujElxUFOxm30MENEFrjddNvwpaoSqyeqwLAq6Ih A==; X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="320252197" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="320252197" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2023 12:29:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10578"; a="685170321" X-IronPort-AV: E=Sophos;i="5.96,295,1665471600"; d="scan'208";a="685170321" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga008.jf.intel.com with ESMTP; 02 Jan 2023 12:29:49 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id E10DD220; Mon, 2 Jan 2023 22:30:16 +0200 (EET) From: Andy Shevchenko To: Mark Brown , Vijendar Mukunda , Hans de Goede , Pierre-Louis Bossart , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Andy Shevchenko Subject: [PATCH v1 6/6] ASoC: Intel: sof_es8336: Drop reference count of ACPI device after use Date: Mon, 2 Jan 2023 22:30:14 +0200 Message-Id: <20230102203014.16041-6-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> References: <20230102203014.16041-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753944172513254191?= X-GMAIL-MSGID: =?utf-8?q?1753944172513254191?= Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: a164137ce91a ("ASoC: Intel: add machine driver for SOF+ES8336") Signed-off-by: Andy Shevchenko --- sound/soc/intel/boards/sof_es8336.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c index 773e5d1d87d4..894b6610b9e2 100644 --- a/sound/soc/intel/boards/sof_es8336.c +++ b/sound/soc/intel/boards/sof_es8336.c @@ -681,7 +681,6 @@ static int sof_es8336_probe(struct platform_device *pdev) if (adev) { snprintf(codec_name, sizeof(codec_name), "i2c-%s", acpi_dev_name(adev)); - put_device(&adev->dev); dai_links[0].codecs->name = codec_name; /* also fixup codec dai name if relevant */ @@ -692,16 +691,19 @@ static int sof_es8336_probe(struct platform_device *pdev) return -ENXIO; } - ret = snd_soc_fixup_dai_links_platform_name(&sof_es8336_card, - mach->mach_params.platform); - if (ret) - return ret; - codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); if (!codec_dev) return -EPROBE_DEFER; priv->codec_dev = get_device(codec_dev); + ret = snd_soc_fixup_dai_links_platform_name(&sof_es8336_card, + mach->mach_params.platform); + if (ret) { + put_device(codec_dev); + return ret; + } + if (quirk & SOF_ES8336_JD_INVERTED) props[cnt++] = PROPERTY_ENTRY_BOOL("everest,jack-detect-inverted");