From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08F78330301 for ; Thu, 2 Jul 2026 16:21:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783009312; cv=none; b=LE/WXoc8Gj4ebd68hFYCdtxrwzbSeHJ0N5yotYk3jFQ5zNuScGb3ItrQ4JzHwRv4gGWFjAF1UrqMOgPBU7fDMhjhfUAJMFS9kGCMwoCozdj5Amm1M526qKHawwlm/Lr/XuxBQ7aIqPQtqCNmlHMxdh+vgP2dPkXLNCs8XguAIsc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783009312; c=relaxed/simple; bh=dRkOq8wLX8Ak0u/ptqY8S0iycVqsifoHeK/fBQCsE8k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZwY+hB2Bp5hnlwYm02+RtWS8iES5flyTrCBtdO95N7alKJ40SelzL7yEhnt2fGoYuOWGfIxE38PSNbjeCnvBwvvNoTZFEVUVdJaOfxo5aGRWsf2/cXMZ6t1775nXsgeEC1GSZbok8wgFI/wsoGE+1Ofq6YlDZr4zICt29PbIpM8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NNluEhtJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NNluEhtJ" Received: by smtp.kernel.org (Postfix) with ESMTPS id D53A3C2BCFC; Thu, 2 Jul 2026 16:21:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1783009311; bh=dRkOq8wLX8Ak0u/ptqY8S0iycVqsifoHeK/fBQCsE8k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=NNluEhtJPCefQAXIJyCPMWLoyypB4B0gtnMtDCdjTPHPDN7Tfin5/s+0oOAj7lP30 l3h5oBdmSQ8m0bwGHbQT/OwMyFkTVKzOyvxGrH6A+2TebCM9Sk0+TaaeJRsJ2h0h7E fbcKhgo870uqW4JzI+zYgkQh8OFr7oI4k5iUOXU8A75hr35bVubRwGbnPj79XzpaRk v5Mx0JAUtdZ9KXvyXzgCt0uhg5R9VAUG1V2o7FpANMNIL5AW1Rz8zi4gWEtgkZfz/6 ps4DFroogtyCcWhfTPFy6J39KAMnLgysMn5F9YPnl47seQ2rtnPdpulGNvS0nLf+lw KfA2/hTLM/YbA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC578C44502; Thu, 2 Jul 2026 16:21:51 +0000 (UTC) From: Ackerley Tng via B4 Relay Date: Thu, 02 Jul 2026 09:21:48 -0700 Subject: [PATCH v4 4/6] mm: hugetlb: Use error variable in alloc_hugetlb_folio Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260702-hugetlb-open-up-v4-4-d53cefcccf34@google.com> References: <20260702-hugetlb-open-up-v4-0-d53cefcccf34@google.com> In-Reply-To: <20260702-hugetlb-open-up-v4-0-d53cefcccf34@google.com> To: Muchun Song , Oscar Salvador , David Hildenbrand , Andrew Morton , fvdl@google.com, jiaqiyan@google.com, joshua.hahnjy@gmail.com, jthoughton@google.com, mhocko@kernel.org, michael.roth@amd.com, pasha.tatashin@soleen.com, pbonzini@redhat.com, peterx@redhat.com, pratyush@kernel.org, rick.p.edgecombe@intel.com, rientjes@google.com, roman.gushchin@linux.dev, seanjc@google.com, shakeel.butt@linux.dev, shivankg@amd.com, vannapurve@google.com, yan.y.zhao@intel.com, Zi Yan , Matthew Brost , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Dan Williams , Jason Gunthorpe Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ackerley Tng X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783009310; l=2171; i=ackerleytng@google.com; s=20260225; h=from:subject:message-id; bh=VvHT9yoH0SmYFM4esBdOfTCBwyHQpet20KtQgj6ZI5Q=; b=Si1+yP1dYK4QxTqDyQ34h9O/6Et6U0datHSz68fprIWZU/TFfSmNvOQc/J15AIjbHdBuTz9SW sI/IJEyuvfRCgjTVeIxo03PtWf9YcwshIpEBEH5WM4YIW15X1iK3lui X-Developer-Key: i=ackerleytng@google.com; a=ed25519; pk=sAZDYXdm6Iz8FHitpHeFlCMXwabodTm7p8/3/8xUxuU= X-Endpoint-Received: by B4 Relay for ackerleytng@google.com/20260225 with auth_id=649 X-Original-From: Ackerley Tng Reply-To: ackerleytng@google.com From: Ackerley Tng Refactor alloc_hugetlb_folio to use a local variable for returning error codes. Instead of returning ERR_PTR(-ENOSPC) at the end of the error path, assign -ENOSPC to a return variable at each failure point and return that variable at the end. This allows the cleanup goto targets to be used with other errors in a later patch. No functional change intended. Signed-off-by: Ackerley Tng --- mm/hugetlb.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index f595ab15f9fcb..176b7e9130a38 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2887,8 +2887,10 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, */ if (map_chg) { gbl_chg = hugepage_subpool_get_pages(spool, 1); - if (gbl_chg < 0) + if (gbl_chg < 0) { + ret = -ENOSPC; goto out_end_reservation; + } } else { /* * If we have the vma reservation ready, no need for extra @@ -2904,13 +2906,17 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, if (map_chg) { ret = hugetlb_cgroup_charge_cgroup_rsvd( idx, pages_per_huge_page(h), &h_cg_rsvd); - if (ret) + if (ret) { + ret = -ENOSPC; goto out_subpool_put; + } } ret = hugetlb_cgroup_charge_cgroup(idx, pages_per_huge_page(h), &h_cg); - if (ret) + if (ret) { + ret = -ENOSPC; goto out_uncharge_cgroup_reservation; + } /* Takes reference on mpol. */ nid = huge_node(vma, addr, gfp, &mpol, &nodemask); @@ -2941,6 +2947,7 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, folio = alloc_buddy_hugetlb_folio(h, gfp, &mpoli); if (!folio) { mpol_cond_put(mpol); + ret = -ENOSPC; goto out_uncharge_cgroup; } spin_lock_irq(&hugetlb_lock); @@ -3033,7 +3040,7 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, out_end_reservation: if (map_chg != MAP_CHG_ENFORCED) vma_end_reservation(h, vma, addr); - return ERR_PTR(-ENOSPC); + return ERR_PTR(ret); } static __init void *alloc_bootmem(struct hstate *h, int nid, bool node_exact) -- 2.55.0.rc0.799.gd6f94ed593-goog