Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3142635pxb; Mon, 18 Apr 2022 17:08:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzvnHwX2x/LG5xsFJcY2D0tfIwfsl63wXXDJt+vqCjrXLkHUekHuU+SMigkSsjnEcUCgcuR X-Received: by 2002:a17:902:7298:b0:158:3a08:3163 with SMTP id d24-20020a170902729800b001583a083163mr13011976pll.133.1650326896129; Mon, 18 Apr 2022 17:08:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650326896; cv=none; d=google.com; s=arc-20160816; b=qHW8FNbgLHphxBi0S6NAZP/PcGJeGEW9vrEafTxCx/SkBQxDOm5IEjKf3IPchxvHSM YusA3pGX9rjKd4L9M9EodfsQdBg93ZBr7f7dq9sm416e92rHTydAr/W+XKQEB9a4ZLnF iA0p2Ck6B8uaY9hT00FgYNzKCjujhnCW1xjocIVwUBHOMruMWsAn6ulEytDpZhj/gBMV 70KyPKI+EwH82Wlj+0UQJDCHX8VRwajkHq+EF81P6Aqg8ZiqmwljXkazCgCLE5oA9Z02 w1yraXYNiHYdI6WSMY5murq4Hmrdr+n1iSSrbh+nLXVS4bUmGXkwE73r061sp8bfDlfl JYkw== 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=oQFTJPzPgYowZjwkSMPnw1P8iXMV7iPhjklVQk58nW0=; b=qBof0/xaYjkezetQgZ4IzqZauz/AfllcT/pswfavhVRgcXEqfDGtb4CHhpwo4TQCPa 65zS/xhPOg3hOgDhtHlxH/IVSn8RZViR+k2soWeFUuUsAeWah5mWmB+rncP42su1YfIx w4PKCW+b50vEjFvmWRL7qpYLeXmXZysoGuA/5LyQp96UiJ5OrvTdHi8mRBUFqI+3sY/L XXjqDUR4y/mdrP17+rdwiniWj72FBerJszcXccfldBZPM8aHh9f3aDAL18dqsFA8V30x K3dnYO2rLfmYgIwZJGEfoGj1pIjH+016XAmJYlMRDPaeUxgDhzjp2uPsKFwfMRVWo4xD ygpQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GaMJOiHe; 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 lk16-20020a17090b33d000b001bf24ef7511si815248pjb.125.2022.04.18.17.08.00; Mon, 18 Apr 2022 17:08:16 -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=GaMJOiHe; 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 S1343950AbiDRORX (ORCPT + 99 others); Mon, 18 Apr 2022 10:17:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244402AbiDRN5R (ORCPT ); Mon, 18 Apr 2022 09:57:17 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 968A32182C; Mon, 18 Apr 2022 06:07:25 -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 416B0B80D9C; Mon, 18 Apr 2022 13:07:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A36E1C385A1; Mon, 18 Apr 2022 13:07:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1650287243; bh=A2OvgRXUH8AWEyjfgaWIlA14tdS3A0N61n6t1B2cyJU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GaMJOiHesPTj3KMpxSXICUuBWUHsvPzLDrAjxQnP26Y6bkd8S3epMe72rwkS6yGMh gL/RjEwbW+zaNtzjeJvJfZRsQ9Mhu2yppwTyyKxe8tjaUpIrbGtG8Yja7lipGMmnmS VqgDWetcnp2tjy8vZ0lkbUJT+cT3O0Ja2jlVhcyI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Rosin , Wolfram Sang , Sasha Levin Subject: [PATCH 4.9 101/218] i2c: mux: demux-pinctrl: do not deactivate a master that is not active Date: Mon, 18 Apr 2022 14:12:47 +0200 Message-Id: <20220418121202.492700750@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: Peter Rosin [ Upstream commit 1a22aabf20adf89cb216f566913196128766f25b ] Attempting to rollback the activation of the current master when the current master has not been activated is bad. priv->cur_chan and priv->cur_adap are both still zeroed out and the rollback may result in attempts to revert an of changeset that has not been applied and do result in calls to both del and put the zeroed out i2c_adapter. Maybe it crashes, or whatever, but it's bad in any case. Fixes: e9d1a0a41d44 ("i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'") Signed-off-by: Peter Rosin Signed-off-by: Wolfram Sang Signed-off-by: Sasha Levin --- drivers/i2c/muxes/i2c-demux-pinctrl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c index a86c511c29e0..c347860b3690 100644 --- a/drivers/i2c/muxes/i2c-demux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c @@ -259,7 +259,7 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev) err = device_create_file(&pdev->dev, &dev_attr_available_masters); if (err) - goto err_rollback; + goto err_rollback_activation; err = device_create_file(&pdev->dev, &dev_attr_current_master); if (err) @@ -269,8 +269,9 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev) err_rollback_available: device_remove_file(&pdev->dev, &dev_attr_available_masters); -err_rollback: +err_rollback_activation: i2c_demux_deactivate_master(priv); +err_rollback: for (j = 0; j < i; j++) { of_node_put(priv->chan[j].parent_np); of_changeset_destroy(&priv->chan[j].chgset); -- 2.34.1