From nobody Thu Sep 24 15:52:07 2026 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 4hrJHW2btXz6srPC for ; Thu, 24 Sep 2026 15:52:07 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hrJHW1Xngz4VWy for ; Thu, 24 Sep 2026 15:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790265127; 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=IQkT/UPP7QUdOfOWuKuv4P9EmkwdMki2Zc04NmRXT+M=; b=n7Jfo4V+h/kLFRizPg+E9g16E82ncjz0QcwwARGxKKIY0p3rcEGU8Pi3nnlnVbzMdjUxQP mnH5tFroYD0MEj+k3ppahq3Nn2RinleYmmngiyq9Ru/jgJZUXXF6oZd7RWP+28lcrFd/nb MswpqSNxE9uhVi6oNXyPLCwmXgl3YOr2iaQWjYeE67GOZhUSAnFv3VuEorDvh5BJ5eiSsp 9aOT9a0mkfSFRiwGWQXT/BQojkMH8CAB/i3VjM8zbAbrL5tzspazpQRER8Xda8Np/uPUp2 aDN/YzzVg5Qb4QK0BEUWjZyIhqq4uxspC23bdtZRPkk0h+wfwnBFDzvKHKJraA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790265127; b=CLv0xJBLyF8vdOv/8sja0RI+9xCC24mSIaWnYTKpQ2Wduilps0/J4gPB88exQws4s+HmkI 6ArPk9Cmu+hltB8NUV5gh2afjfVi877c7AkpYCJcmRvyXKKAAjstrAYwqjGsp/0rbd3yjt 1xbXi4FibwYeYRB7WO6cN0AmAisAx8FmVZ9RHkhUAN+h5FiDZcWqD5g5nLv3Y6RcJk7uMP SRpwe8wJwbcyAIJRAyrtAreAtCXobNT2Km8kcstmpWuEeYzcr/tH1Ip7f/0jGXVoT24Mv9 +3xny6GtUBedqzcxBPsF76MknsPeTH2P8FUaYo2Yw/ZBcSfiYrfvp2iokSLwKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790265127; 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=IQkT/UPP7QUdOfOWuKuv4P9EmkwdMki2Zc04NmRXT+M=; b=t2OjfXOz4Mi40MxngkreDuFK6Ft9PL1gymIRpDcNvYNbJIJeFqmCNaDQmR0IKNEwbJw6x1 tGdA4gmqWPBO9vukf08FKmxAMdwUt2K8u0itswrtXXOSQocC4rUtTnqV1P/rlMdE8ckYZw bLSlPcnXEj7ytPxxoowb9rWviWI0xaFZVyaRgjjXlehyek8kdR9oEKtyWMaABZnezi9uN4 5u5DzMi8X1MxS5Gs+Yv+8q22EHiWb6kUE7vHpKq5qSK8as1DOn7xQMPE/YHyftjRkNjage gHFqCMSFXVrwPvojLPIl9WD3XpjuF/KnVozyDogFl9ahVsxFIobAOlRp/Fo7nA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hrJHW0YCjzVkd for ; Thu, 24 Sep 2026 15:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43b21 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 24 Sep 2026 15:52:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 742e58ddc989 - main - vm_page: Fix the error path in vm_page_alloc_contig_domain() 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 742e58ddc989563f90a1d636cb29793641784ca1 Auto-Submitted: auto-generated Date: Thu, 24 Sep 2026 15:52:07 +0000 Message-Id: <6ab54727.43b21.2c97a176@gitrepo.freebsd.org> The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=742e58ddc989563f90a1d636cb29793641784ca1 commit 742e58ddc989563f90a1d636cb29793641784ca1 Author: Mark Johnston AuthorDate: 2026-09-24 15:49:37 +0000 Commit: Mark Johnston CommitDate: 2026-09-24 15:51:06 +0000 vm_page: Fix the error path in vm_page_alloc_contig_domain() If we are inserting a run of pages into a VM object and fail at some point due to a memory allocation failure, we have to free all of the pages in the run. We do that by resetting some fields and calling vm_page_free_toq() on each page; this removes the page from the object and frees it back to the buddy allocator. If the page is supposed to be wired, we reset the reference count, but this was done incorrectly: the VPRC_OBJREF flag must be retained as the page still belongs to an object. Resetting it to zero will cause a panic in vm_page_free_prep(): vm_page_free_object_prep() will subtract VPRC_OBJREF from the refcount, causing underflow, and vm_page_free_prep() subsequently calls panic() if the refcount is non-zero. Reviewed by: alc, kib Fixes: fee2a2fa3983 ("Change synchonization rules for vm_page reference counting.") MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59908 --- sys/vm/vm_page.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 98d0472c8487..251d01221af7 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -2432,7 +2432,7 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pindex_t pindex, int domain, for (m = m_ret; m < &m_ret[npages]; m++) { if (m <= mpred && (req & VM_ALLOC_WIRED) != 0) - m->ref_count = 0; + m->ref_count = VPRC_OBJREF; m->oflags = VPO_UNMANAGED; m->busy_lock = VPB_UNBUSIED; /* Don't change PG_ZERO. */