From nobody Mon Apr 6 18:22:34 2026 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 EBF03339870 for ; Wed, 18 Mar 2026 10:47:32 +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=1773830853; cv=none; b=mzWnmVByYCHF2Oyr6+d/CbMgW9ai8eFGm05tP+gAcmXujLJ2/NUUHj1J50WAWspkF4CZy7R5SQUPJkCfhOEO31WXcPNICRi+zY9qzu4rG63R7a/Kf6Od+EyY7sAmW6tjNbSQDlDbMov48I4gQl6sggQy9BanUSpwTvyJckDAhPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773830853; c=relaxed/simple; bh=dRszLAd6DXvZtZhPtd5ecMsXOYNS/5U7Q8vYrgBZxhY=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=X07FAv9XYYB5mPrDwvX9ttiyKg5MIYMoW7SM/ffDCKdnhUElXO0Q3nzwMhndN+zL0BCf5Xta59JHXgGijy3IYW6EMpB3omINGYxzPe7ZpnKlXbziOtOi3uL0BahHWEx5eBea36ViL4O+H9PdUgdhPlmu3kmoUIkeYURbcGoFSdk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bd2ETAmO; 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="bd2ETAmO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F3A9DC19421; Wed, 18 Mar 2026 10:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773830852; bh=dRszLAd6DXvZtZhPtd5ecMsXOYNS/5U7Q8vYrgBZxhY=; h=From:To:Cc:Subject:Date:From; b=bd2ETAmO9OJ+/PxxALsld43KNUSrLfW0e3cjXRDh73QzjBv0ykDF/dJnxbNoE36Gn oGCdyqW+JXte4kqU0Ga6re2iUQQU4LeyeKUGGN0wuMurtrk0Ura31uASu4v3uVp21k TAQWU12cwTGxPY80ffZyfCj4ARvcGArTQEDjM49OexGHYRQrlNR8erXzcuwhxleb+Z 7WY/RcbtQ2trCqmKwuPWnAi7P46hHJv672kbBT5Ki/5HRFR1PpxIPwaajmxqrCXyat X6QwqJc48++C1i6edRE0BD3nT1cOuqwYzz+Ezr8nY/M7qEeIZ7A8SfF3qYM15cMRnw l5C0fzK0Lg2BA== From: Arnd Bergmann To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matthew Brost , Francois Dugast Cc: Arnd Bergmann , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Balbir Singh , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/pagemap: avoid referencing HPAGE_PMD_ORDER for non-hugepage builds Date: Wed, 18 Mar 2026 11:46:20 +0100 Message-Id: <20260318104637.1794243-1-arnd@kernel.org> X-Mailer: git-send-email 2.39.5 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann HPAGE_PMD_SHIFT/HPAGE_PMD_ORDER can only be used in configurations that allow hugepages, but forces a build error otherwise: drivers/gpu/drm/drm_pagemap.c:671:48: error: call to '__compiletime_assert_= 608' declared with 'error' attribute: BUILD_BUG failed 671 | folio_order(page_folio(src_pa= ge)) !=3D HPAGE_PMD_ORDER, | = ^ include/linux/huge_mm.h:117:26: note: expanded from macro 'HPAGE_PMD_ORDER' 117 | #define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) | ^ include/linux/huge_mm.h:113:28: note: expanded from macro 'HPAGE_PMD_SHIFT' 113 | #define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) | ^ include/linux/build_bug.h:60:21: note: expanded from macro 'BUILD_BUG' 60 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=3D0 = to see all) include/linux/compiler_types.h:697:2: note: expanded from macro '_compileti= me_assert' 697 | __compiletime_assert(condition, msg, prefix, suffix) | ^ Hide this inside of a check for CONFIG_PGTABLE_HAS_HUGE_LEAVES. Fixes: 192cb1f5cb16 ("drm/pagemap: Enable THP support for GPU memory migrat= ion") Signed-off-by: Arnd Bergmann --- Not sure if this is the best approach, as the BUILD_BUG_ON() and drm_WARN_ONCE() check for similar failures, and this would bypass both checks. --- drivers/gpu/drm/drm_pagemap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_pagemap.c b/drivers/gpu/drm/drm_pagemap.c index 6ac980bd8f3d..7463aec0db82 100644 --- a/drivers/gpu/drm/drm_pagemap.c +++ b/drivers/gpu/drm/drm_pagemap.c @@ -479,7 +479,8 @@ static int drm_pagemap_cpages(unsigned long *migrate_pf= n, unsigned long npages) folio =3D page_folio(page); order =3D folio_order(folio); cpages +=3D NR_PAGES(order); - } else if (migrate_pfn[i] & MIGRATE_PFN_COMPOUND) { + } else if (IS_ENABLED(CONFIG_PGTABLE_HAS_HUGE_LEAVES) && + migrate_pfn[i] & MIGRATE_PFN_COMPOUND) { order =3D HPAGE_PMD_ORDER; cpages +=3D NR_PAGES(order); } @@ -666,7 +667,8 @@ int drm_pagemap_migrate_to_devmem(struct drm_pagemap_de= vmem *devmem_allocation, } migrate.dst[i] =3D migrate_pfn(migrate.dst[i]); =20 - if (migrate.src[i] & MIGRATE_PFN_COMPOUND) { + if (IS_ENABLED(CONFIG_PGTABLE_HAS_HUGE_LEAVES) && + migrate.src[i] & MIGRATE_PFN_COMPOUND) { drm_WARN_ONCE(dpagemap->drm, src_page && folio_order(page_folio(src_page)) !=3D HPAGE_PMD_ORDER, "Unexpected folio order\n"); --=20 2.39.5