Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp132776ybc; Mon, 18 Nov 2019 21:53:34 -0800 (PST) X-Google-Smtp-Source: APXvYqy4L+Al873ZOZeSqKcQ5/DMLpCB6DU5EdolVPtO92NwvjMRo4f0epm9B3CKbQOMaSya01w9 X-Received: by 2002:a17:906:d0d2:: with SMTP id bq18mr31516156ejb.217.1574142814638; Mon, 18 Nov 2019 21:53:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574142814; cv=none; d=google.com; s=arc-20160816; b=j1wU2+vJoYth4IGRYXJckFf+oG/FR5piNQCj55bgc2tyWrrTfh+7S5HvnlPRCk9jGg NDOk63ehRwRQSLQ9ZJX5Wcfvgdaw3YXBzypQM4HBktoAbnfYQYQE1d8Xf9TGZPPwJynT C4f5XZlpMzenTD6A1LVlDC64YsG/CEs9wSxOsrFQ7qVgyw66zPAQegugh43CGJ/YTe5c 2HC/j0PSctc52O2VBYlxFr3LADGadaxqHbL4H8QHD6j60bTtbHktvp/OmjDU01yRqoDg k55eDvhla0YnfyCxROqCpSnsOkk+crewBcHMCiDVK5pdjzQlVLZGDvLRk0XvgCdGqAbj CvmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WKjRo4iw0Iasbv/my6ReWoyTcOSFV8AcfRZy8StS26c=; b=iKr5sgiQgf7zKJF22nyx6/L1KEmxJCXoTCn3EZL9gqDrHxm7+CpM4X547+OAeNEPVT QE7DGWG14mPdm4vuxFmjWmpZql5MTVIVq1P767Pq80seKqiAJvEw5rQnUlYjnFnCC5l4 vQ5EMex6u7pSMinsBG/Nt+4N/4fypa/VyGJNrYyE8w0nPOlCdXIJz5gYG0JuajibQD4H wTgKhcwKf5mWpSGeolDfAQRgTlgewTS6LwsGTDdIC1QpadymlHK7I+IdaQkGnPyKTObs VnuJnH6pglAPY4Hi+udMfDCh9RRkPQuFvLX/jGl51UdQsiKfzCdms5peg+/kX9a7nG6d wvRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A4avoM3S; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h17si12947029ejq.121.2019.11.18.21.53.11; Mon, 18 Nov 2019 21:53:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A4avoM3S; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731857AbfKSFv6 (ORCPT + 99 others); Tue, 19 Nov 2019 00:51:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:49486 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729923AbfKSFvz (ORCPT ); Tue, 19 Nov 2019 00:51:55 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 36889208C3; Tue, 19 Nov 2019 05:51:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574142714; bh=yghk864Qu3p4uLxrXvRwD8kPFl/idh9sgYH6Bz1/LXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A4avoM3SoNsAz3s4p83ojYU8ZGWb8XmZF2g+IxQGuvXpXD3TJQEP6davK1NIovcRf oV4m2e8W1ijCXemn9VLu9WjoWb5/FSx7ouxgjhiMaUtbN6nL3CTwaGP1qFcj3c6B+/ 0bm/po37VCV8PWtkwPwfOVL1Wv0PabW9NF73vPls= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Banajit Goswami , Sasha Levin Subject: [PATCH 4.14 124/239] component: fix loop condition to call unbind() if bind() fails Date: Tue, 19 Nov 2019 06:18:44 +0100 Message-Id: <20191119051330.260309886@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191119051255.850204959@linuxfoundation.org> References: <20191119051255.850204959@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Banajit Goswami [ Upstream commit bdae566d5d9733b6e32b378668b84eadf28a94d4 ] During component_bind_all(), if bind() fails for any particular component associated with a master, unbind() should be called for all previous components in that master's match array, whose bind() might have completed successfully. As per the current logic, if bind() fails for the component at position 'n' in the master's match array, it would start calling unbind() from component in 'n'th position itself and work backwards, and will always skip calling unbind() for component in 0th position in the master's match array. Fix this by updating the loop condition, and the logic to refer to the components in master's match array, so that unbind() is called for all components starting from 'n-1'st position in the array, until (and including) component in 0th position. Signed-off-by: Banajit Goswami Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/base/component.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/base/component.c b/drivers/base/component.c index 89b032f2ffd22..08da6160e94dd 100644 --- a/drivers/base/component.c +++ b/drivers/base/component.c @@ -461,9 +461,9 @@ int component_bind_all(struct device *master_dev, void *data) } if (ret != 0) { - for (; i--; ) - if (!master->match->compare[i].duplicate) { - c = master->match->compare[i].component; + for (; i > 0; i--) + if (!master->match->compare[i - 1].duplicate) { + c = master->match->compare[i - 1].component; component_unbind(c, master, data); } } -- 2.20.1