Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3312919pxb; Mon, 18 Apr 2022 22:44:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzidZtgCx1BNyczcTPTsZ8krnxmxa74MYNEMnF7F4J1aRDNj1owVbhT6pBvyXyzBhecM2Co X-Received: by 2002:a17:907:1693:b0:6e8:c7e5:c297 with SMTP id hc19-20020a170907169300b006e8c7e5c297mr12395715ejc.138.1650347098747; Mon, 18 Apr 2022 22:44:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650347098; cv=none; d=google.com; s=arc-20160816; b=hhD+KdUJxxpYpGzAoxhsK0YAPbmDY8/OgrjjA5cvZri1chTHmVWddjv6olwbYXvguC wAguMtz2/6yf1J/qj+VLjz14cINxdcCwO9wfbmCRV2+eFGTaMAuBjbECBEJoAP6wxPaL CZ3sSAxbcrxBha8FraC+kjDj62OTKLH3sRPHAmA6/yOm6k1o3qmb4rG0BBfRgCxJ8MEY ZtgzWImQi/zH+yl8p61/2xKzl8S3PwIEcHOPeTuiUd/KgIRKXVB/hwdXWbccg7HFgMhU Vc01JuqZag6Po2vdTFsXJseCSLxH5TUPuiFodbPnuOY5AKC4CEig7KfVoIKAVYJis2ic GHvA== 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=Z8Aw9qpXkj8LL/TXUfnlT8+NUw9T/SHy7bslWifmiI4=; b=D59txJW8uG6WilBgpnPNk8t8gcm0YrtT9V/LJ8ETanc4kyH3LC7G8+sNSvebG0StWT DEvhV/3o2CCjh4EiOZipxz1YwIsio3/qb4IFQ3t+s2blkehkNBEli1VqrY+QyjvuEDyo +BbIGCG7KMLNOgpr1rbStt3sBTGM2xDiNA5WKdZu2CWaSDBsM+pzrDrGYX4pXqKIpVAh OiMxbgZxt/GfEKgiMuaSbSHPf7hR3dteas47NjaryfmJp+ZCLKQaJM1Rj83sUx9xNIz1 1BHwX7SGK90z21IRWFiMlc8oLRVt0AOIVSHfhN7eTkdDDRtR//CoWCrSo3mEPcz+yWYX pXdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=TfLfrE1a; 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 rv7-20020a17090710c700b006e7fd5bfca6si7505940ejb.703.2022.04.18.22.44.34; Mon, 18 Apr 2022 22:44:58 -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=TfLfrE1a; 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 S1343887AbiDROPp (ORCPT + 99 others); Mon, 18 Apr 2022 10:15:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244554AbiDRN5I (ORCPT ); Mon, 18 Apr 2022 09:57:08 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52DEF2A73E; Mon, 18 Apr 2022 06:05:53 -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 ams.source.kernel.org (Postfix) with ESMTPS id 02CF8B80EC0; Mon, 18 Apr 2022 13:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34A78C385A1; Mon, 18 Apr 2022 13:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1650287150; bh=awb9tY5AraIwovx/J0x9nNAEUbVyHajbQHy7kYxnBsg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TfLfrE1azGDPAKTY1E77e97gIZhA7KloPklUlqCxLDwTWaj2ql641ZyNFeHwaXgtT YHN5dZ93H22G75aNyqk5wl7v8vVh7uWmy+0rXYPcZTyBcvkFM31k+bG0AxyS4gcjXY A+RIY+dz47g9oC62AI/f1NYfHvMPCXitRBBJBiGk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jiasheng Jiang , Charles Keepax , Mark Brown , Sasha Levin Subject: [PATCH 4.9 071/218] ASoC: wm8350: Handle error for wm8350_register_irq Date: Mon, 18 Apr 2022 14:12:17 +0200 Message-Id: <20220418121201.642238858@linuxfoundation.org> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220418121158.636999985@linuxfoundation.org> References: <20220418121158.636999985@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: Jiasheng Jiang [ Upstream commit db0350da8084ad549bca16cc0486c11cc70a1f9b ] As the potential failure of the wm8350_register_irq(), it should be better to check it and return error if fails. Also, use 'free_' in order to avoid the same code. Fixes: a6ba2b2dabb5 ("ASoC: Implement WM8350 headphone jack detection") Signed-off-by: Jiasheng Jiang Acked-by: Charles Keepax Link: https://lore.kernel.org/r/20220304023821.391936-1-jiasheng@iscas.ac.cn Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/wm8350.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/sound/soc/codecs/wm8350.c b/sound/soc/codecs/wm8350.c index 2efc5b41ad0f..6d719392cdbe 100644 --- a/sound/soc/codecs/wm8350.c +++ b/sound/soc/codecs/wm8350.c @@ -1536,18 +1536,38 @@ static int wm8350_codec_probe(struct snd_soc_codec *codec) wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, WM8350_JDL_ENA | WM8350_JDR_ENA); - wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, + ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, wm8350_hpl_jack_handler, 0, "Left jack detect", priv); - wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, + if (ret != 0) + goto err; + + ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, wm8350_hpr_jack_handler, 0, "Right jack detect", priv); - wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, + if (ret != 0) + goto free_jck_det_l; + + ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, wm8350_mic_handler, 0, "Microphone short", priv); - wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICD, + if (ret != 0) + goto free_jck_det_r; + + ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICD, wm8350_mic_handler, 0, "Microphone detect", priv); + if (ret != 0) + goto free_micscd; return 0; + +free_micscd: + wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv); +free_jck_det_r: + wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv); +free_jck_det_l: + wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv); +err: + return ret; } static int wm8350_codec_remove(struct snd_soc_codec *codec) -- 2.34.1