From nobody Sun Mar 02 08:14:22 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5F8t5M4sz5nqwC; Sun, 02 Mar 2025 08:14:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5F8t4cGdz3Vjv; Sun, 02 Mar 2025 08:14:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740903262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aWXZ8hOaO/Yo9+pl1meEjzQ+nJda972lHecDcNFQlTk=; b=IwohgO1CvvHzoAv73fHvnm9DWlUb/glMfZbyl4K5cqckMHgEUDwuDeX4KJHFTsVqvU0Tix sie1vvW9NVZQATlL0PwoHe90noRh7DlLxUGwdZZI6ErXefI52v29aEQkyPfnAxjhejo+Wg UkBtP031QWvsa9plTSDLcdg/OHRkkAbGjLC9juby9aosrqtEeUfMRW0mIKtnopDATKeHkp b9Xagaa7/ce103b19469oGNHnZ2EirW+fqZ5UKKzs/joFJ4ZcZkNmOFgkIbANSmNgonloo EnGznNCCG37d2K59ea1s/1dzVqoVhC55kp4ZvkfzrWbhdwIyZ/c+hTo5vErHCA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740903262; a=rsa-sha256; cv=none; b=E2+dqNEqRobZ2DaUtfj4NDRN540IA9bOEaRuMiJUzPL1aht+ccFBXREg765Xlg4MFaQZ/e Mbc0jrjDDkQX3/fbX7kHcQMTX0TNnuKmg8X0+dwIyGN1Y/TrXQ163WmYA80b6Yw5XH/Ec1 jtz1WwuZoJiXXSXL3uKvaj1FY2GVqtnX5cvAYPjodpF6++T4Fe23IgDYAeLBVudZ5socHU PGYLbr7COLny2JWrTX63igQgMsAgdUj2mXov/H1+Trt59ckTONHs8dKkrJY0VfNn7dGZjX nfxK50BZRf8mAwlHXixwtBZRJGUcyVkcdYYHzb+PE6mAuyFwouCuKZ2Q9s7cIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740903262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aWXZ8hOaO/Yo9+pl1meEjzQ+nJda972lHecDcNFQlTk=; b=iS7qw93cX5P3UivOqK8Sqg4Lr1YtuCJDniQQeJJtFMUp9BJXG0DdRT9tEsnhZh/rUyfAVt Ufn55SXw19qX2jxFpfGOMmeSbBTAgFPXi6+srpXWEOkcOt3fpHqaa1b4c8a3LnEhF1mz12 ami3PZJlqaMr+yA7f94dP3yLMn+nmtHErxuNC5x3caa4qpW2AVwXkLLqzVIENDcHoqfEh7 p5qekKk7+U6R/1LsDIhGSbPWgGeZv7SXpzOfXCQi1pJ/NM+ZDOA1vLME6OjJduqTGGOa7+ 7d13zYujIcuj4E0IhNJ9B55GzDZMCIYyQX/jq6Duot/KRThR/K7t+RgCyE1GxQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5F8t49W4zt4g; Sun, 02 Mar 2025 08:14:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5228EMC2025349; Sun, 2 Mar 2025 08:14:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5228EMPi025346; Sun, 2 Mar 2025 08:14:22 GMT (envelope-from git) Date: Sun, 2 Mar 2025 08:14:22 GMT Message-Id: <202503020814.5228EMPi025346@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore Subject: git: 420e2f8a74df - main - vnode_pager: simplify loop, avoid overflow List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 420e2f8a74df4be1237244a4ef222d2ceae6823d Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=420e2f8a74df4be1237244a4ef222d2ceae6823d commit 420e2f8a74df4be1237244a4ef222d2ceae6823d Author: Doug Moore AuthorDate: 2025-03-02 08:13:24 +0000 Commit: Doug Moore CommitDate: 2025-03-02 08:13:24 +0000 vnode_pager: simplify loop, avoid overflow Filling in read-behind pages in vnode_pager_generic_getpages() is made very slightly simpler here, by avoiding overflowing the startpindex variable and then avoiding an extra test in the allocation loop that handles the overflow case. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49200 --- sys/vm/vnode_pager.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index d5d312b3cf71..69509fe8948a 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -1045,18 +1045,13 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int count, vm_page_t mpred, p; VM_OBJECT_WLOCK(object); - startpindex = m[0]->pindex - rbehind; - if ((mpred = TAILQ_PREV(m[0], pglist, listq)) != NULL && - mpred->pindex >= startpindex) - startpindex = mpred->pindex + 1; + tpindex = m[0]->pindex; + startpindex = MAX(tpindex, rbehind) - rbehind; + if ((mpred = TAILQ_PREV(m[0], pglist, listq)) != NULL) + startpindex = MAX(startpindex, mpred->pindex + 1); - /* - * tpindex is unsigned; beware of numeric underflow. - * Stepping backward from pindex, mpred doesn't change. - */ - for (tpindex = m[0]->pindex - 1; - tpindex >= startpindex && tpindex < m[0]->pindex; - tpindex--, i++) { + /* Stepping backward from pindex, mpred doesn't change. */ + for (; tpindex-- > startpindex; i++) { p = vm_page_alloc_after(object, tpindex, VM_ALLOC_NORMAL, mpred); if (p == NULL) {