Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp416658pxj; Tue, 18 May 2021 06:21:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz7KT/c0/qklUNROYPCebYBn2xSmpxOlJRpTq4Bb01yHbEuzDu7sdOUEilNQ/VqaTTs/Gs9 X-Received: by 2002:a5d:814d:: with SMTP id f13mr4060044ioo.203.1621344083495; Tue, 18 May 2021 06:21:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621344083; cv=none; d=google.com; s=arc-20160816; b=VtYoddrhptXdpIAgtcfM/AGa60880AFInBxmnugyX/puXkkptUWploTb9xFX/SNYky 563E2iDeq4Ngv3gx4Fd1o/utYMdeW74sZq+4PaL3SgPrqEYjF4T6R2Pu4aJnOB7g/wGX WzO8ggjMZhUP4LVlTNi56ENV2NpvMy9hdBNeEs7LGZUytpihwoZaaSsAyKGwTylRM19b vheI9r8zqmIGa+DgsAgRNTPjTN7sv2mF/6gCt6eklIYTexvzF1nw3fboocK09WnVgnQj fKm89ysK1FoR2Ma+AMxGpUtxCG2beiQyG08bJc7MfBvRBtUYXtC2SvltgAEdqog/qARo RViw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=oWg9tQiBnDd7w8o9jHFXnSM8tCb5hhCDdTaO7qPy0ps=; b=sBBEfJuMbLLThKbXalZ0ybhnMFby+2nXVBS9m9Yvp2UZlSr27mRNgWEywQ3hXm7agC SJeGCcute6RMIxmmB+IxP7FF8IeKahogs9Drh/5wl8AV7TpafawiB+37+fhNwHc2Ui4f DYn94r1tfuZTqU0gy8YY0Vwufl1rVkrZFb9usaMu9QS7BiaWfNAIdGX1raBqKs5brx2r aHGAoxA3Tmpd9ulHjVoSop1sJKarwebMopOU+8kQGLJIUbM/Mx9V/sHLqB4WuA+kJryz VGkm+W4QWO7rEg4hKNZHOrZ6mUrnPIGNaRK5a/3UHY1duflVsjcAPkPMTYb6Aa1mJMTS 94QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=h9roauv9; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j2si7252053jak.119.2021.05.18.06.21.10; Tue, 18 May 2021 06:21:23 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=h9roauv9; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244331AbhEQPhL (ORCPT + 99 others); Mon, 17 May 2021 11:37:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:39318 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244666AbhEQPVd (ORCPT ); Mon, 17 May 2021 11:21:33 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 66CD661C91; Mon, 17 May 2021 14:34:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1621262080; bh=SszRPVGUxvCf8F0XMBRaHAJA7OrsDzb5CH7hIPePVd0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h9roauv9vkfBe6Uukaq2cM8hvbT/1HCZvkwJqRH2BJ2QbXxglCieogJgvBWULCq59 HE9CQA1nTA7TuV+nF37BuP4bdBjPn7miOSrSH44yIDoA7A9/zTp0ltGZAm4Hu3t3X2 1t83VYLBDyDpZfSIHokTx5iUWnYGmx9FAYfIhY4Y= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Kroah-Hartman , Joel Stanley , Marek Szyprowski , Ard Biesheuvel , Russell King , Florian Fainelli Subject: [PATCH 5.4 134/141] ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address Date: Mon, 17 May 2021 16:03:06 +0200 Message-Id: <20210517140247.329237638@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517140242.729269392@linuxfoundation.org> References: <20210517140242.729269392@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel commit fc2933c133744305236793025b00c2f7d258b687 upstream Commit 149a3ffe62b9dbc3 ("9012/1: move device tree mapping out of linear region") created a permanent, read-only section mapping of the device tree blob provided by the firmware, and added a set of macros to get the base and size of the virtually mapped FDT based on the physical address. However, while the mapping code uses the SECTION_SIZE macro correctly, the macros use PMD_SIZE instead, which means something entirely different on ARM when using short descriptors, and is therefore not the right quantity to use here. So replace PMD_SIZE with SECTION_SIZE. While at it, change the names of the macro and its parameter to clarify that it returns the virtual address of the start of the FDT, based on the physical address in memory. Tested-by: Joel Stanley Tested-by: Marek Szyprowski Signed-off-by: Ard Biesheuvel Signed-off-by: Russell King Signed-off-by: Florian Fainelli Signed-off-by: Greg Kroah-Hartman --- arch/arm/include/asm/memory.h | 6 +++--- arch/arm/kernel/setup.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -68,8 +68,8 @@ #define XIP_VIRT_ADDR(physaddr) (MODULES_VADDR + ((physaddr) & 0x000fffff)) #define FDT_FIXED_BASE UL(0xff800000) -#define FDT_FIXED_SIZE (2 * PMD_SIZE) -#define FDT_VIRT_ADDR(physaddr) ((void *)(FDT_FIXED_BASE | (physaddr) % PMD_SIZE)) +#define FDT_FIXED_SIZE (2 * SECTION_SIZE) +#define FDT_VIRT_BASE(physbase) ((void *)(FDT_FIXED_BASE | (physbase) % SECTION_SIZE)) #if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE) /* @@ -111,7 +111,7 @@ extern unsigned long vectors_base; #define MODULES_VADDR PAGE_OFFSET #define XIP_VIRT_ADDR(physaddr) (physaddr) -#define FDT_VIRT_ADDR(physaddr) ((void *)(physaddr)) +#define FDT_VIRT_BASE(physbase) ((void *)(physbase)) #endif /* !CONFIG_MMU */ --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -1080,7 +1080,7 @@ void __init setup_arch(char **cmdline_p) void *atags_vaddr = NULL; if (__atags_pointer) - atags_vaddr = FDT_VIRT_ADDR(__atags_pointer); + atags_vaddr = FDT_VIRT_BASE(__atags_pointer); setup_processor(); if (atags_vaddr) {