Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1090995pxf; Thu, 8 Apr 2021 22:56:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzX+7ZrKyf496WHo4jVRzMiSnQmoKoxYAtzPwe8Pv2iN/dpWU3P/clWZa3jIN/sHZ1CtVwK X-Received: by 2002:a17:906:3643:: with SMTP id r3mr14280747ejb.527.1617947800061; Thu, 08 Apr 2021 22:56:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617947800; cv=none; d=google.com; s=arc-20160816; b=J7czwwq58j2JN/lQPUeeQiotwkxtzdwJeTVVN/r7XF+mzy78cv9ghcF+UUCTx75LVE nOWA0UXuy27vrkY9TI391pnbjR+cuQ0wC/9SBdkTJolU7cZCnWfGLYBz2QR1M50dVmp8 TjyjfslWKOyFQwZrfs7HQkG0Nr4p8/1cQEq+E7W7tKH2PtLKBwhiyXIN/1OFqbmsWiyW P5q995mrbzTZyGz+mQYj5QyXFUKLTuqkfLowsxhDRu2qQVxvn+tDVwtMtoaQ1BiUSVaS 6/oQSmJHptdetPYA/nwA1IeTYU9c9/L3CgVi9ZNbcH+tdH8riPmJZCYikLTZI7uNlsW/ ghtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=c0cvTdCh8hTQLf58uiO2g1TfVSQyl50kCWPMbgnKuAg=; b=P+OXoZZhzux2JCYsCSeJnUiu81NisttO1jtiyytwJON0WmJOF76LmhzqA/i8/0qxeo RJTSI/hpwOifGDsn/SaR/UPAVAxUCziJWbgoDTv5HpGsAlVCAvdbsTHj4eNlZB+9iXHq XUzZzdrWupLC8uo6LelEvQ7stkvnE0rGrJBIsJrORReLnWdpC7uyqPuWggb427xK2xFA 1eCnp97CnO/YsAmScIAbOTbP7M4nFkRfwKC3OLo25yHYZVheZv2+pvtiDZlEvnQHY3Nv OkP2EwGENReXYIP2001UcaaT+QNUeC07260hbLrYFTfQXwI4zTFP8axjlNtZe6YDOOet /UKQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jt19si1222892ejc.606.2021.04.08.22.56.17; Thu, 08 Apr 2021 22:56:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229715AbhDIFyr (ORCPT + 99 others); Fri, 9 Apr 2021 01:54:47 -0400 Received: from foss.arm.com ([217.140.110.172]:41804 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230219AbhDIFyq (ORCPT ); Fri, 9 Apr 2021 01:54:46 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1FFD9106F; Thu, 8 Apr 2021 22:54:33 -0700 (PDT) Received: from p8cg001049571a15.arm.com (unknown [10.163.71.121]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9BE0B3F694; Thu, 8 Apr 2021 22:54:31 -0700 (PDT) From: Anshuman Khandual To: linux-mm@kvack.org Cc: Anshuman Khandual , Andrew Morton , linux-kernel@vger.kernel.org Subject: [PATCH] mm/page_alloc: Ensure that HUGETLB_PAGE_ORDER is less than MAX_ORDER Date: Fri, 9 Apr 2021 11:25:17 +0530 Message-Id: <1617947717-2424-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pageblock_order must always be less than MAX_ORDER, otherwise it might lead to an warning during boot. A similar problem got fixed on arm64 platform with the commit 79cc2ed5a716 ("arm64/mm: Drop THP conditionality from FORCE_MAX_ZONEORDER"). Assert the above condition before HUGETLB_PAGE_ORDER gets assigned as pageblock_order. This will help detect the problem earlier on platforms where HUGETLB_PAGE_SIZE_VARIABLE is enabled. Cc: Andrew Morton Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual --- mm/page_alloc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 604dcd69397b..81b7460e1228 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7068,10 +7068,17 @@ void __init set_pageblock_order(void) if (pageblock_order) return; - if (HPAGE_SHIFT > PAGE_SHIFT) + if (HPAGE_SHIFT > PAGE_SHIFT) { + /* + * pageblock_order must always be less than + * MAX_ORDER. So does HUGETLB_PAGE_ORDER if + * that is being assigned here. + */ + WARN_ON(HUGETLB_PAGE_ORDER >= MAX_ORDER); order = HUGETLB_PAGE_ORDER; - else + } else { order = MAX_ORDER - 1; + } /* * Assume the largest contiguous order of interest is a huge page. -- 2.20.1