Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp2888311pxb; Mon, 18 Apr 2022 10:19:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwf4rpoBTBwaHOa0Nti1JSz2njilyewwxrgZ0oBwUfJ1PTN0b0D0z4sZJz/X1v6DqUbxBGj X-Received: by 2002:aa7:c5d4:0:b0:420:11ef:c1c9 with SMTP id h20-20020aa7c5d4000000b0042011efc1c9mr13148150eds.392.1650302383408; Mon, 18 Apr 2022 10:19:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650302383; cv=none; d=google.com; s=arc-20160816; b=d3oofapaM6vKk04lB4uvj4JZIk5PvYwu27s+2myRSs1wKaHRn+RbX9P7i8AI+9VQ0F AWQ2G7y8cWtaD9WCEEyxMFYCT/c3ezIbqRkU8z4+dFxDpGzgEAjQoKELNjwSQMTTuBhw 7r/BST5RY2PTSyH4fPs9ci18zWHtT3xIYF322mVK2U3vJS1O1pA6NLIcR5EnnYAB4DkO 7nzy0243yUrjZyU3t2Yu8WccJisTj/09JazMwSd01DGnLUGfLhHsENIc841nPnGqEDJM Ukc2uhWRLIYEwczoace2TvCVf7gZ/jC3a2qotMu6UzxOijLzN+eHOccbd/ESrc9nL3tZ /WxQ== 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=E7bXRLNMqcuSkyNaO6QVubY+swn4aMJfBqL8K6m4V34=; b=dGYj/4/C6s+/hqYbswngdgRU5qcA1SXvxSv0X8shghoCIbmnVs5XzfDX6QbEcSHGwU mvsExHdAn5g3a4lIXYS1pdFJcLqRSJTvLbbaMpdLd0V+p/ExR0KiA7XXQvYVYgEh0M/h Qv7PyTEpDbUmnEyg+a8EMPWqh8fneS5VQG5PC6O5KcBBgViXtSdDyNFS+pDODAD8W+8s ISIz1j2TCam4AySM1wN+FHOFW+fq1ed4jb9AiRjVgYNuA2ZbL8hs1VboFDjMxFO0EYU5 O8VnjiMymULYNcxeubB2kfUkqUClX/lws/JiieQNzXigH13TTu2GIFkqw58pyTUFH9y5 Sm/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=QeBLy1GT; 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 o4-20020a170906768400b006e8da072889si1691943ejm.687.2022.04.18.10.19.16; Mon, 18 Apr 2022 10:19:43 -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=QeBLy1GT; 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 S238262AbiDRMTX (ORCPT + 99 others); Mon, 18 Apr 2022 08:19:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238223AbiDRMSk (ORCPT ); Mon, 18 Apr 2022 08:18:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 099331B79D; Mon, 18 Apr 2022 05:15:57 -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 dfw.source.kernel.org (Postfix) with ESMTPS id 961BF60F07; Mon, 18 Apr 2022 12:15:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA867C385A8; Mon, 18 Apr 2022 12:15:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1650284156; bh=BZX6audibro97uCmaO6HcMI9G8asr2tb6YpClv7yebQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QeBLy1GT6Tswic+L59RpK/Birxg5k9JQbX3drh4jHLL7905Ep4rUK8mt4vwrLPCFB c7wywPEBgw5MzHfRKsOecsLDxQ/8wn6huugEVHc2XokPLZDVfs7w+aZFsa7MguqX4a aj2JCWMg2z2wzxPcEGc18Hg46nMwheBCgJhnFvG8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Takashi Iwai Subject: [PATCH 5.17 023/219] ALSA: au88x0: Fix the missing snd_card_free() call at probe error Date: Mon, 18 Apr 2022 14:09:52 +0200 Message-Id: <20220418121204.643720303@linuxfoundation.org> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220418121203.462784814@linuxfoundation.org> References: <20220418121203.462784814@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 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 b093de145bc8769c6e9207947afad9efe102f4f6 upstream. The previous cleanup with devres may lead to the incorrect release orders at the probe error handling due to the devres's nature. Until we register the card, snd_card_free() has to be called at first for releasing the stuff properly when the driver tries to manage and release the stuff via card->private_free(). This patch fixes it by calling snd_card_free() on the error from the probe callback using a new helper function. Fixes: e44b5b440609 ("ALSA: au88x0: Allocate resources with device-managed APIs") Cc: Link: https://lore.kernel.org/r/20220412102636.16000-8-tiwai@suse.de Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/pci/au88x0/au88x0.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c @@ -193,7 +193,7 @@ snd_vortex_create(struct snd_card *card, // constructor -- see "Constructor" sub-section static int -snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) +__snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { static int dev; struct snd_card *card; @@ -310,6 +310,12 @@ snd_vortex_probe(struct pci_dev *pci, co return 0; } +static int +snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) +{ + return snd_card_free_on_error(&pci->dev, __snd_vortex_probe(pci, pci_id)); +} + // pci_driver definition static struct pci_driver vortex_driver = { .name = KBUILD_MODNAME,