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 807E3196C7C for ; Tue, 19 May 2026 00:19:49 +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=1779149989; cv=none; b=SHst6Mf/irAaFX0paQNUv2FTY61Raa9O+QC3RGEE2QwRsKJr7KaFp7wfAX/zxR4bqU9Gais6Jr/0J6+GgvhbF/yqQfOIJsmVhlltKXR8tv/CdyAK0Rbn7qdG5CNA6BYBPKoKR/tU5LpE5PAd6jNZqYqN1jNGBRC1HgFkO8eTXJE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779149989; c=relaxed/simple; bh=4pRcmdoszQb1kW+RAvRDYtLTa/5NT++4GEUmZxA+3co=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J4LHprY9FEu3MQ6rhqvRfbTyRzB6FX4Itb9UcOd6t3DMGq5y4QhRHLSZHyxZQcXiJjxL6EgW3FBSKQrRVwCX8icRZCellvwkiAysJL9+0ojEsJAYJmtmgz+SAGXmekiwQ3tFCkPw+8RGLZ2Fq905/kRoPjsJzccdIsmHiUA6SpM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a6C6ODg2; 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="a6C6ODg2" Received: by smtp.kernel.org (Postfix) with ESMTPS id 598BAC2BCFB; Tue, 19 May 2026 00:19:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779149989; bh=4pRcmdoszQb1kW+RAvRDYtLTa/5NT++4GEUmZxA+3co=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=a6C6ODg25asan6i8laEWhVV95H1HYC5NafWQrytlq4++06Nf+W3LzmyvwxuCKTTxX uI0Nt874Zxp0C3Vhswe9ewi39wDzTPzhQnZGLp6/bulUMoLVPa3pJ4/4NFf8xxMxjU saw6LbcaDsi9yt7DjqJ3Fpab2/41VskhWHxMRe4WOJOhrwMmGn0BEWc/vYZNWLOuLy 7tWtw8tnWDw0sU3lTWpSJenxsWjc1LrcqaUzrUvuiF6DyMJnU5THOJ3bx2SNe/w2SA AfpfKGKWI0+OdWeToOvOtA/mm7jJMXOBUo8oEEb/0Jjov9YhhOnSMn/u5zv2cWkyD3 9jgYyg7SWPC5w== 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 4C132CD4F58; Tue, 19 May 2026 00:19:49 +0000 (UTC) From: Ackerley Tng via B4 Relay Date: Mon, 18 May 2026 17:19:43 -0700 Subject: [PATCH v3 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: <20260518-hugetlb-open-up-v3-4-e14b302477f8@google.com> References: <20260518-hugetlb-open-up-v3-0-e14b302477f8@google.com> In-Reply-To: <20260518-hugetlb-open-up-v3-0-e14b302477f8@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=1779149988; l=2132; i=ackerleytng@google.com; s=20260225; h=from:subject:message-id; bh=0XVqHZOzRz+o5ty9A92C0Mk3eHhDCZNGyrqA29XGPQE=; b=aFCnv6H1zaN1sS3mad+QbIK71b5juUR1G+mlB4WyY2Y3mw9BwW1DP63mKit/pyTTPVbAf0h5d +889JUL5xDMDkN8PQ3bi9eyZygo2V5kuVz1Cd97ELKEDT2+VXxoiWEB 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 9807bbe0d70df..ad07e72d6fac3 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2903,8 +2903,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 @@ -2920,13 +2922,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); - 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); @@ -2954,6 +2960,7 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, mpol_cond_put(mpol); if (!folio) { mpol_cond_put(mpol); + ret = -ENOSPC; goto out_uncharge_cgroup; } spin_lock_irq(&hugetlb_lock); @@ -3046,7 +3053,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.54.0.563.g4f69b47b94-goog