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");