Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp2177764ybm; Thu, 23 May 2019 12:38:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqzAvsGqDJbt6jYvp7eJ30uLoKdpekT5/rn8qrVQsSyTznKuLGcomi1xkEv4B97jgCtlHJpr X-Received: by 2002:a65:56c5:: with SMTP id w5mr100189794pgs.434.1558640298406; Thu, 23 May 2019 12:38:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558640298; cv=none; d=google.com; s=arc-20160816; b=CMisjtRRLIlwkEktjcDGomvRpaVGzOpT9M5d62pUzHchKnoBSYtiLyZx3SJEBQiKNz /wOyU3zHXQTsLDTuxu9ZkK27UJTkc/ITIEWWVMD6kyewHZwtzCzPZptwgZIBNL78gCNG d4nWfiRGBFAfdyHXjfkC7aRQkWRdBUY/NfC4CcWKaHofNTxls59dmVzE3SacGdx+O3pM m8BFvK3BOltawfJaakJmy8T+aN3hwpG9vsbUsxrH7x5/6n7zfUNULplJN+FVcoDayaNx 2fzxrybtIJPue9UOZw2WUJjLGHM2mEfLVjbJ8+OBm5Y74pbyANBip/k7x5aLOmFgJji9 y0kg== 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=VQw/5Laseyiq+qu8R/AOYO86Pprv1/YKAD5mM8lIQlE=; b=0b6TJLmGzpt5VVbBipJ7+XyfIyM5nV4UnnXOSghpvgKgNmWLIVOMFM29uyO9enRbTV ygkYSiJYWgZJ7dm8nTrfjSfmw3ID40QmMqLPm775I+1IzPhmHZ16CCipylA8+AOF8xv/ X8b0kwFXhpSi3aXMMfPfXlXKlBcaGgi31pP/2/KNSokKEein3R4qSG+YeJn5MO4gPlxR gdVrQGVwaHrbFIamG89o9GFt221kf6JF7+N0yB45H4z3ahKq39ASbthlVou9Zf7Z9SgL O/sJH1XNCWLRanPRQGJfrpzc9amxrhxC80Rktcz+o9Pxr0iQFM5YeFTpC1HYVxqGecGT jBjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VcvCqjSm; 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 14si345238pfu.76.2019.05.23.12.38.03; Thu, 23 May 2019 12:38:18 -0700 (PDT) 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=VcvCqjSm; 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 S2391146AbfEWT1Z (ORCPT + 99 others); Thu, 23 May 2019 15:27:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:39624 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390913AbfEWT1X (ORCPT ); Thu, 23 May 2019 15:27:23 -0400 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 8135320879; Thu, 23 May 2019 19:27:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558639643; bh=Nm15f3YcNOtVfrW1oNjZ7xyyUdfKI/PQDQcqZCXPm/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VcvCqjSmLnL0fF0LE2MEhwX5+UWUhvm1nkXGORjbDMJIz1oJAnFPWSB2/9KXgH785 W8n5ddQ1cLXQspdpgrWStlrr7CQaGBxV9hjRcS2Xop+R4rnDbDh3N+IcZq9xfg+6Qk 0nh3rJ4V2GT+DFzBeFtN98403Kh2lkUV0darpAks= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Steve Twiss , Dmitry Osipenko , Mark Brown Subject: [PATCH 5.1 025/122] regulator: core: fix error path for regulator_set_voltage_unlocked Date: Thu, 23 May 2019 21:05:47 +0200 Message-Id: <20190523181708.070633377@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190523181705.091418060@linuxfoundation.org> References: <20190523181705.091418060@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: Steve Twiss commit 70b464918e5331e488058870fcc6821d54c4e541 upstream. During several error paths in the function regulator_set_voltage_unlocked() the value of 'ret' can take on negative error values. However, in calls that go through the 'goto out' statement, this return value is lost and return 0 is used instead, indicating a 'pass'. There are several cases where this function should legitimately return a fail instead of a pass: one such case includes constraints check during voltage selection in the call to regulator_check_voltage(), which can have -EINVAL for the case when an unsupported voltage is incorrectly requested. In that case, -22 is expected as the return value, not 0. Fixes: 9243a195be7a ("regulator: core: Change voltage setting path") Cc: stable Signed-off-by: Steve Twiss Reviewed-by: Dmitry Osipenko Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- drivers/regulator/core.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -3322,15 +3322,12 @@ static int regulator_set_voltage_unlocke /* for not coupled regulators this will just set the voltage */ ret = regulator_balance_voltage(rdev, state); - if (ret < 0) - goto out2; + if (ret < 0) { + voltage->min_uV = old_min_uV; + voltage->max_uV = old_max_uV; + } out: - return 0; -out2: - voltage->min_uV = old_min_uV; - voltage->max_uV = old_max_uV; - return ret; }