Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5683160ybl; Tue, 14 Jan 2020 13:11:14 -0800 (PST) X-Google-Smtp-Source: APXvYqxjlficmC8NAtNlLtu+LBmr6V5o4jMvaBQu6KCsPhxadMdQjgEf/wBoZ4IdOCsvdZ1JLYxW X-Received: by 2002:a05:6808:9a4:: with SMTP id e4mr18676106oig.127.1579036273967; Tue, 14 Jan 2020 13:11:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579036273; cv=none; d=google.com; s=arc-20160816; b=w0lqJhWSTNwP9rWMpfJ6PoAquGJjURDnsGD5jRJ8RofcUR+Cs1MWhP0pUZa21AGJNS X5fCzFH9BCnIytrux+Wsi9nOuS637ScqXTDNzoab0fSIS18m5PPi9a+TBpMXBsI8Gn3j KAbKXE33HGHG7r7b8Z6vM7fW6BqCDuSTUeyFy9tsxoicuzGjj0eOqzVGiv/XhasTldw+ t27keoRYr/9Sq/JvMAPq4jvXwyTK06LS9XvtL9lB0NHo3v9cybODmrt/e9NDOt3GLSqd dl9iaMqQbaHDXiCCWmapAtTbdR0RGGetrnhu6I6S17HWFfeeOH4KLnrWzaD0jGIJJj0Y Hz/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=XBaHL4FClCfLtRidMtmRndEYvbO/vg97ksPaN1hKiqA=; b=Vc5X8WiXt2eUVESXeqUO7HeUJ2JopHN8lwm3/Bjn73dWRDRF5CuQslgqc8maw9tppF fpwE3bziOubKw8aqQyaid9ufMlOslCe19QS8HlDQi5oeXak9WBtsby5JG/c8TVd6ltc3 qb7Lj1Oqnmxf8S4rN/pkrz/DK1uSPxfL1f59/Q0GymFi7VoD7UAdaE0ePJ9h6UTeYfxG +JviG9NfRjUoze5EYuW86J1wT+3XFm4WFTakE0pjGDOlpdsUT1KqenbMkqK61D20R6vw uRYy8YW6mMS2bvSios0m91T6oqlOGQgYGHeyDMNwYBpX+ex++CZhKUNVqtpvmCug4rpn yzdQ== ARC-Authentication-Results: i=1; mx.google.com; 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 e24si8450713otl.62.2020.01.14.13.11.00; Tue, 14 Jan 2020 13:11:13 -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; 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 S1728874AbgANVJx (ORCPT + 99 others); Tue, 14 Jan 2020 16:09:53 -0500 Received: from foss.arm.com ([217.140.110.172]:57494 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728808AbgANVJx (ORCPT ); Tue, 14 Jan 2020 16:09:53 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6EAD01435; Tue, 14 Jan 2020 13:09:52 -0800 (PST) Received: from e107158-lin.cambridge.arm.com (e107158-lin.cambridge.arm.com [10.1.195.21]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 166C53F534; Tue, 14 Jan 2020 13:09:50 -0800 (PST) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra Cc: Dietmar Eggemann , Steven Rostedt , Juri Lelli , Vincent Guittot , Patrick Bellasi , linux-kernel@vger.kernel.org, ouwen210@hotmail.com, Qais Yousef Subject: [PATCH v2] sched/uclamp: reject negative values in cpu_uclamp_write Date: Tue, 14 Jan 2020 21:09:47 +0000 Message-Id: <20200114210947.14083-1-qais.yousef@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200112235217.26647-1-qais.yousef@arm.com> References: <20200112235217.26647-1-qais.yousef@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The check to ensure that the new written value into cpu.uclamp.{min,max} is within range, [0:100], wasn't working because of the signed comparison 7301 if (req.percent > UCLAMP_PERCENT_SCALE) { 7302 req.ret = -ERANGE; 7303 return req; 7304 } # echo -1 > cpu.uclamp.min # cat cpu.uclamp.min 42949671.96 Cast req.percent into u64 to force the comparison to be unsigned and work as intended in capacity_from_percent(). # echo -1 > cpu.uclamp.min sh: write error: Numerical result out of range Fixes: 2480c093130f ("sched/uclamp: Extend CPU's cgroup controller") Signed-off-by: Qais Yousef --- Changes in v2: - Improve the commit message as suggested by T. Zhou kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 90e4b00ace89..e66b131e3aeb 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7254,7 +7254,7 @@ capacity_from_percent(char *buf) &req.percent); if (req.ret) return req; - if (req.percent > UCLAMP_PERCENT_SCALE) { + if ((u64)req.percent > UCLAMP_PERCENT_SCALE) { req.ret = -ERANGE; return req; } -- 2.17.1