Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp645327pxb; Tue, 5 Apr 2022 17:08:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwVWLWLdOj3e1rh+vFE19lbpqgvHNF7l145Tkj8P0F36x0YK4hEgT+4wJRFouDbR79efyps X-Received: by 2002:a17:903:11d0:b0:155:c240:a2c0 with SMTP id q16-20020a17090311d000b00155c240a2c0mr5888598plh.143.1649203704414; Tue, 05 Apr 2022 17:08:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649203704; cv=none; d=google.com; s=arc-20160816; b=xuBKiWfZQi2F02zEuU6WIOqMYQUvPfrtQ3XERNbl/lN2yJ42xf4wLuRTIxUge/h8HH KPbY8FVAREoYsfL7VCG8D+lNEWhsk0c2yf/YNMilhXJJlXMaeZPPRWTYKmtwG+vSpBLO DkoS97gAUSJzU3PF3FkN+Rc3FouZn31hwrLhgxgn1NXQ5sIPjJ7cZXZcwG0FIRjLvVTJ l3bMa3y1XlIWooPw7faK2+Lwtuk+aI0U7w6km5rIBh2ssQkYachpnU8ZUpmywjx1m5lN k7NWE1ff0fuLhiYIkeyvlq94w0czW83IWaUeji9goyP9BJ5JUr44ARLDc5T3KuWH9IvI elhA== 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=ynjXnZ6zyd7cjGMhrL1BibL8G5n+RCBEtniKYKDkFnwm4wySH94hK+K7V5dSGFaj+3 ZkaeYtwAplShFeGsMt7EgOeY1CJ2VqcTCEE88lBIS3k+N4q5zmpJkSP3aW+QCZ5ijNLH EAXgIY2jGFBXUXEfbMa6/NGV+tsbvv4C8RV3SvKH429m2a27hNkeohGZxor04UevZFGv AN5wvvCtlUn4WIm8bHCbj8wY3nOGo8ur4KIslTGP0VWqgxXt5sAP+42DG7XgPa62YiTK 6fPJKI90jHPLMVJu3LdGtg3XbbyPuSbL8fevRqlQEtBgHUUT4t73Zk1UyLniXl0D+85B XnAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=QfIHvIe4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id t14-20020a170902e84e00b00153b2d165b1si14750540plg.441.2022.04.05.17.08.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Apr 2022 17:08:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=QfIHvIe4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 185CE154716; Tue, 5 Apr 2022 16:53:04 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358976AbiDEMvz (ORCPT + 99 others); Tue, 5 Apr 2022 08:51:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244652AbiDEJKH (ORCPT ); Tue, 5 Apr 2022 05:10:07 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A6182AC5B; Tue, 5 Apr 2022 01:59:51 -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 609B7614FC; Tue, 5 Apr 2022 08:59:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 750B4C385A1; Tue, 5 Apr 2022 08:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649149190; bh=mNrzE2y4jaCJIXuG3CMdKKY1QnNmRPTne+P4BnMs2vQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QfIHvIe4TGcbTSzojFNWo21Yhuwh7iW0TYpK6u0kctjoT2N5VDEo5i1b4ygquGwN0 UTTjgmaYsmlO4qgpqWG6bEUrQP6Hcn2LmCJzoLwdsF6Al4dresrs96WAsrhdvW+vRq UaIRTmnPZm7iwqAXDqz72H3pPjklJXMnj72zyfKM= 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.16 0626/1017] i2c: mux: demux-pinctrl: do not deactivate a master that is not active Date: Tue, 5 Apr 2022 09:25:39 +0200 Message-Id: <20220405070412.863478512@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070354.155796697@linuxfoundation.org> References: <20220405070354.155796697@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