Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp974355pxb; Wed, 6 Apr 2022 05:46:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcbeq2uSxXDjrNQk4laZiwmQ1WFOVyg/8PECJL/qljmG/wqEKXJDJz4Av+axv7yzwMMmIx X-Received: by 2002:a05:6a00:1581:b0:4fa:e6d4:c3e6 with SMTP id u1-20020a056a00158100b004fae6d4c3e6mr8533496pfk.84.1649249211049; Wed, 06 Apr 2022 05:46:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649249211; cv=none; d=google.com; s=arc-20160816; b=SXY6paY8nkoX6MGC62TX7+ItEHKH/0b5bLjv0doWFQ1JMCqL7mFJI1l4Z56XLoGvw3 wfleqnc70WUrQXSv18x/UWocM55tmy/Co1yPIsBBUGm9uZe6tU8f9KkeFe9b4oSrXc8H QE1CgGQYZJ3Py+qGYCVXJNa0LEXH2ep7jCPVTfCKRtMANeqTYuF/ExLmQV8Qq85gOXLS QSQfBS7ceH1Tie3XgvDe+kfSa+7T3Oq46MHzu+1Iphr9Tfic8O4IriL0l7WXTbi07POU EGephVkT4oU+rCkLW9sM8lOVsGdRmNJ6fQqrBLaQf0dNvLxFXs77a/iMsq6lKAcqEeXX CrTg== 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=0KfcPYs5aHd+5keb6v/SyFrLUjfAdeFQ0iWoOFN53Wo=; b=twgb5QKTIEUFNyvF1lwfiwzsBM8Ncqj+SoopODSo/HDXi+Lc5+j2sTa8DfvZAS+1s6 aa3ZTZ2rngdB102TftuWRPdOqqWQOm7MsXw7wCt5Nm2ykNQqfpoSR0DRUUY+H1yWBfHL ewSXQwvYo/cgXG5qBCEkziHY8tfbJ64hTcL6CrcAKDOZxQt6Sf3eaTIoGP3GTsPqB8up hZGhOjr7xJ32NSmekjruIOp0Iu4eAmhnwLK6ymZ1U/ygUsknyUS9Qjhc4VsiH/wjNgAf qe/EO6OnjkPrq5TOkyUtNjurU3+mSJL5v+XObK6TqAlN/fR1yJKW3p4086aDr3xOZffl ogBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OySDktq2; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id v7-20020a634807000000b0038639161a37si16532035pga.510.2022.04.06.05.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:46:51 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OySDktq2; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 252455CEE1C; Wed, 6 Apr 2022 02:31:17 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239354AbiDEUbn (ORCPT + 99 others); Tue, 5 Apr 2022 16:31:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242757AbiDEKfQ (ORCPT ); Tue, 5 Apr 2022 06:35:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91D0ADF484; Tue, 5 Apr 2022 03:19:18 -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 2E22661676; Tue, 5 Apr 2022 10:19:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 464A6C385A0; Tue, 5 Apr 2022 10:19:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153957; bh=mNrzE2y4jaCJIXuG3CMdKKY1QnNmRPTne+P4BnMs2vQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OySDktq2zJPzVgp9jSLLzaR/mHXNUmJ7Z5HjDSlrH4xkwecR+CZGCfwqCB5XCjT4H etQY9lFuVbKnRdwDpvtbCs8HV7YRImqoEFYjvgS0B9N1YJ3O7QnMyGkSHOsswbSlLt x1M8oS2SK1zKPhphtLZM8tWH+2qP20MASb4UXgj8= 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 5.10 370/599] i2c: mux: demux-pinctrl: do not deactivate a master that is not active Date: Tue, 5 Apr 2022 09:31:04 +0200 Message-Id: <20220405070309.840620402@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@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=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 5365199a31f4..f7a7405d4350 100644 --- a/drivers/i2c/muxes/i2c-demux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c @@ -261,7 +261,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) @@ -271,8 +271,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