Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1770776ybl; Sat, 11 Jan 2020 02:28:56 -0800 (PST) X-Google-Smtp-Source: APXvYqzI7JkNxQp0i/hUFlmN/2SFij6k22Ppp+8VMAeEeueWwDpf1u/q4myLZfV7d05TVPa+ZDwB X-Received: by 2002:a9d:7cd9:: with SMTP id r25mr5879936otn.326.1578738536024; Sat, 11 Jan 2020 02:28:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578738536; cv=none; d=google.com; s=arc-20160816; b=O5ndUDdiRXhF77fOnH2E9Ll/HIzGJPio3rY11t2qnZszlurqyAMAK816g2mZs0Oe1A 4bAMVRc6lL0AHztCx8j2gqScFXYApUbD7SI1LN8WmHJWSQVxMsfzJr1FqPf2qPcnf946 HiVbc/Xya9GILvtgi18uO2s/3lj15LvnVOS6qMBW8OboC32RNtbTSnQSF+EGOAk57NYx wCIFrbzV7sF/2iVUfnEXsfKa12zQggWmaKnHfIIZF5NnSl7sHU0dRluIUasMigMl7g9U HKvNeEhzFziGKXrzTqzZp2AGyoPwzxz5neI7dUodrk37USF+2BXQG/kXVV6vz2BdWnSC mYWQ== 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=0LlPJ1edjSZGYFfRHf6ZC9rnpdxU/Nq7oE1ixj7osaU=; b=ONYIdb02LsbEScoR0N3GhRTufZdVnLkDMcXVQGIP0WkMtVrmVh6fV3n7+tySQI8vuw bXu0YeuCsi2wnGFlssUrMI7x+kRj+qq4D/s5x8Oj/7D+Mm0tidfTLM/7Q3aqp+TpAKi9 aGWPSQegcB1KQxNvYpZ68UlFhHZFyMlYD5IABfnv5CCnvS4j1pX+bEzLytNqab9Ffw3u cHJz3Eekx4qb8RvgoZz0AMq0ok448G5+HwDHnl/DZQMRrDfZGiJDGz63dtk5xygXT9t/ JVmaxZTxRkE05X/hPjsKmB3yCq3eTxkSvQ45kf919G++xAVmpTvZ0xkF4U94PiU5sJyf idWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="MGNP/vAw"; 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 f204si2540214oia.43.2020.01.11.02.28.44; Sat, 11 Jan 2020 02:28:56 -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="MGNP/vAw"; 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 S1731112AbgAKK1z (ORCPT + 99 others); Sat, 11 Jan 2020 05:27:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:34376 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731083AbgAKK1w (ORCPT ); Sat, 11 Jan 2020 05:27:52 -0500 Received: from localhost (unknown [62.119.166.9]) (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 68AA220880; Sat, 11 Jan 2020 10:27:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578738472; bh=OUtdEcKKm9GCfSQ/foIneGkdTaGiXgZyeKxgLROz668=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MGNP/vAw6Z07JmLz+igtIcUaK+lyMjS4N1QpWqN/M0g1XRGtY8J8MqdeXvIGoKW6G lX/XxoOMEQeWGtTTawBjxNuG/S1EAK955vP671U8NkF87By7UdRlMrPpOPiC5VPnRb Ne5lR8zgNa0C9dnlldQKktwXNmacnNcE6X0kSpKQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johannes Weiner , "Peter Zijlstra (Intel)" , Suren Baghdasaryan , Jingfeng Xie , Sasha Levin Subject: [PATCH 5.4 101/165] psi: Fix a division error in psi poll() Date: Sat, 11 Jan 2020 10:50:20 +0100 Message-Id: <20200111094930.155151632@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200111094921.347491861@linuxfoundation.org> References: <20200111094921.347491861@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: Johannes Weiner [ Upstream commit c3466952ca1514158d7c16c9cfc48c27d5c5dc0f ] The psi window size is a u64 an can be up to 10 seconds right now, which exceeds the lower 32 bits of the variable. We currently use div_u64 for it, which is meant only for 32-bit divisors. The result is garbage pressure sampling values and even potential div0 crashes. Use div64_u64. Signed-off-by: Johannes Weiner Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Suren Baghdasaryan Cc: Jingfeng Xie Link: https://lkml.kernel.org/r/20191203183524.41378-3-hannes@cmpxchg.org Signed-off-by: Sasha Levin --- kernel/sched/psi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c index 970db4686dd4..ce8f6748678a 100644 --- a/kernel/sched/psi.c +++ b/kernel/sched/psi.c @@ -482,7 +482,7 @@ static u64 window_update(struct psi_window *win, u64 now, u64 value) u32 remaining; remaining = win->size - elapsed; - growth += div_u64(win->prev_growth * remaining, win->size); + growth += div64_u64(win->prev_growth * remaining, win->size); } return growth; -- 2.20.1