From patchwork Tue Oct 17 00:53:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gavin Shan X-Patchwork-Id: 153844 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp3819810vqb; Mon, 16 Oct 2023 17:54:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFCvj2NPXBYHL4AF507tmWckplaIB4CYo4dLmTGdonPHxq9VxCnCWqt6Yg8sl44w1Nw/LEx X-Received: by 2002:a05:6a00:6008:b0:68f:c309:9736 with SMTP id fo8-20020a056a00600800b0068fc3099736mr750876pfb.3.1697504053877; Mon, 16 Oct 2023 17:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697504053; cv=none; d=google.com; s=arc-20160816; b=Ujb95qPL5J1hGhnqurzalYWBFvqO2LWT3xnXuDsX3xabhrLY7PZO08If6QOTbi5E2G PJs80/QZWf1L+atghjEN0n6u/tCpCz/eGxmdC3QBA1Z7Su7Zmf90KIaCiyJzO3v/dsnW uac2yFdzsvzzHGdXdWxP6ZcGq965BkNMD7myhpURuAE0lKZT5Vw2C/x93j06vA77kuiS xVM1jdtUFtFW/XY7UCiTT7NmHs3tdK+50rC07Nx8AOS3d/VgUBoKTXYzkbLYAIzTTH3N n/IpfYf5qajnQT098dekuUOY+JTggwHpnVhCG8SdPLsAD4uhrNL9HDGJLsyM1RBTf9Up 6qjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=FVYfxxgypJNUOYWqlo9r89JsXo7lPpAWq0cYDAv2yF0=; fh=35qS1zR4nJl4UAp23/QWQ6efWfwmlWoeTA+EA/p7hhY=; b=rcipSFGKBGdXoAX457i5KK6KCs2ySh2djZE7ThJZhaxAc9nQh4Ky3cN5w338Z7kIZd remKeo+qSmkLA2+/DBhMnxv5ojB7c/yMfBO1HodEfMeTWif6DghnlfVcpVoMuAu4HE4C kSMkLh8xWOC8Nf+kxW2EBANo5883aaWhi50eQE3JKhKPo2/mmBL6+X7ZCBN/k0fBc3zm W3W65x69ExeYTzTfZjcRM5ntQ4TugzccE6AKNyjLcf0WHudPWLhvJGj+sVQPieOVW709 KsfCC5Q8NfkaHFssmQwMcuDPVIx2IIWhSlgzbVokH8ttF2rk1nb2AkCj77+TIQ29tozW BYGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=grk8m27y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id p20-20020a056a000a1400b006b905fe37b7si446578pfh.221.2023.10.16.17.54.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 17:54:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=grk8m27y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 63FFD80D6E6D; Mon, 16 Oct 2023 17:54:12 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234181AbjJQAyJ (ORCPT + 18 others); Mon, 16 Oct 2023 20:54:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233549AbjJQAyI (ORCPT ); Mon, 16 Oct 2023 20:54:08 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C98F7AB for ; Mon, 16 Oct 2023 17:53:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697503998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FVYfxxgypJNUOYWqlo9r89JsXo7lPpAWq0cYDAv2yF0=; b=grk8m27yD4tWdX6vOHhkHP5j4831qJR5viSoPxpG8inE6NO0x2HtHuvDKkSYmWEstXO/R4 8Cp59cMn7mTw4E8nqFVUbuw4Ak0NkfP6mKWogvz8x4IiC5i3PKTJGZjfR8YdvSspr+/fAc 1y6poJKk2P3bygLJzB4CAC97243XsH8= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-590-i2a4zPEuMQ6T_suWUDgpzw-1; Mon, 16 Oct 2023 20:53:13 -0400 X-MC-Unique: i2a4zPEuMQ6T_suWUDgpzw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CA2C5185A795; Tue, 17 Oct 2023 00:53:12 +0000 (UTC) Received: from gshan.redhat.com (unknown [10.64.136.82]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 32E1840C6F79; Tue, 17 Oct 2023 00:53:09 +0000 (UTC) From: Gavin Shan To: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, catalin.marinas@arm.com, will@kernel.org, ryan.roberts@arm.com, mark.rutland@arm.com, anshuman.khandual@arm.com, shan.gavin@gmail.com Subject: [PATCH] arm64: mm: Validate CONFIG_PGTABLE_LEVELS conditionally Date: Tue, 17 Oct 2023 10:53:00 +1000 Message-ID: <20231017005300.334140-1-gshan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 16 Oct 2023 17:54:12 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779962010692638676 X-GMAIL-MSGID: 1779962010692638676 It's allowed for the fixmap virtual address space to span multiple PMD entries. Instead, the address space isn't allowed to span multiple PUD entries. However, PMD entries are folded to PUD and PGD entries in the following combination. In this particular case, the validation on NR_BM_PMD_TABLES should be avoided. CONFIG_ARM64_PAGE_SHIFT = 14 CONFIG_ARM64_VA_BITS_36 = y CONFIG_PGTABLE_LEVELS = 2 Signed-off-by: Gavin Shan --- arch/arm64/mm/fixmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/mm/fixmap.c b/arch/arm64/mm/fixmap.c index c0a3301203bd..5384e5c3aeaa 100644 --- a/arch/arm64/mm/fixmap.c +++ b/arch/arm64/mm/fixmap.c @@ -18,10 +18,11 @@ #define NR_BM_PTE_TABLES \ SPAN_NR_ENTRIES(FIXADDR_TOT_START, FIXADDR_TOP, PMD_SHIFT) +#if CONFIG_PGTABLE_LEVELS > 2 #define NR_BM_PMD_TABLES \ SPAN_NR_ENTRIES(FIXADDR_TOT_START, FIXADDR_TOP, PUD_SHIFT) - static_assert(NR_BM_PMD_TABLES == 1); +#endif #define __BM_TABLE_IDX(addr, shift) \ (((addr) >> (shift)) - (FIXADDR_TOT_START >> (shift)))