Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3348289ybl; Sun, 12 Jan 2020 15:54:42 -0800 (PST) X-Google-Smtp-Source: APXvYqyDIkpWi3cX+XwmvAGy6GNN7vH2aUPy8cg3JRm2y4f4aibLolBgQEGFFWw+Ctnp1o8qcL3o X-Received: by 2002:a9d:6d8f:: with SMTP id x15mr11261991otp.322.1578873282403; Sun, 12 Jan 2020 15:54:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578873282; cv=none; d=google.com; s=arc-20160816; b=YCNOsjcqBPZt+Hqe/N6BJbEyyvr75vhUI309lnGePTnBUmYIbGyyyhWTlYKcWAAJwU os63WZPn+e+j0GENdJWLOeAGRbx/dCOVlcRtqawixK4on12liRICr2igKqL0qb9w1RgR +zbdH4uQm7mb/8DeLo62uvGwlcRs2SjmSVDpj8kIOQaCK0POJaHBgxb6WW99WibKg0Oh rsn34sRqp5dSArttXFOxqN/cE0ieUF5cHIL1k+AdG8gApIhiKDfDR2DoPu5rN//U1Yw1 qUcjvxjNIA+dUf/yusNBYbZUySYINOldmkBm+5ECsvLqwuyeTeljack2oZ2gKMndWyuo 3LKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=4MuzXE09gJ5hR/oNkOAbr2D58kch/QLzqodMTRmPbLo=; b=iEPneDHatApkNIqmbG+4MgRQN1TidcTu5ALY5pbH4/xq1uscllzMCgI7DGJQxbPjKN CaMhSpOMiny+t0o0Zh8Q0B7Rr5hPekn37UMAYe3jDGSJVDwsAc7BcFYzctwoxC7JOYj8 DD2SzWro/CSj3c5MgnK0NK62Jd92IuqYjnzXABCQoL2xQJle7nVjdoxml8DNAtUPLtG/ 4jLO3pPhb4AU9H6qxO0naMTCgXdSS9xP3WhglARQueTsPfcdOHqrMigctRV6JsQLcDkq IREzdtlVjSoLENx/dQw3UDt0d0gu8It0bAH1RMBu5rAJk++JxX7T3KgT6AIQ9XUhVSca ubAg== 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 i8si4810010oih.206.2020.01.12.15.54.31; Sun, 12 Jan 2020 15:54:42 -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 S2387497AbgALXwf (ORCPT + 99 others); Sun, 12 Jan 2020 18:52:35 -0500 Received: from foss.arm.com ([217.140.110.172]:33092 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727323AbgALXwf (ORCPT ); Sun, 12 Jan 2020 18:52:35 -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 E00FB30E; Sun, 12 Jan 2020 15:52:34 -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 A9B2E3F68E; Sun, 12 Jan 2020 15:52:33 -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, Qais Yousef Subject: [PATCH] sched/uclamp: reject negative values in cpu_uclamp_write Date: Sun, 12 Jan 2020 23:52:17 +0000 Message-Id: <20200112235217.26647-1-qais.yousef@arm.com> X-Mailer: git-send-email 2.17.1 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 } Cast req.percent into u64 to force the comparison to be unsigned and work as intended in capacity_from_percent(). Fixes: 2480c093130f ("sched/uclamp: Extend CPU's cgroup controller") Signed-off-by: Qais Yousef --- 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