linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Mike Rapoport <mike.rapoport@gmail.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Russell King <rmk+kernel@armlinux.org.uk>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.14 17/23] ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
Date: Sun, 29 Sep 2019 13:35:27 -0400	[thread overview]
Message-ID: <20190929173535.9744-17-sashal@kernel.org> (raw)
In-Reply-To: <20190929173535.9744-1-sashal@kernel.org>

From: Mike Rapoport <mike.rapoport@gmail.com>

[ Upstream commit 00d2ec1e6bd82c0538e6dd3e4a4040de93ba4fef ]

The calculation of memblock_limit in adjust_lowmem_bounds() assumes that
bank 0 starts from a PMD-aligned address. However, the beginning of the
first bank may be NOMAP memory and the start of usable memory
will be not aligned to PMD boundary. In such case the memblock_limit will
be set to the end of the NOMAP region, which will prevent any memblock
allocations.

Mark the region between the end of the NOMAP area and the next PMD-aligned
address as NOMAP as well, so that the usable memory will start at
PMD-aligned address.

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm/mm/mmu.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index e46a6a446cdd2..70e560cf8ca03 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1175,6 +1175,22 @@ void __init adjust_lowmem_bounds(void)
 	 */
 	vmalloc_limit = (u64)(uintptr_t)vmalloc_min - PAGE_OFFSET + PHYS_OFFSET;
 
+	/*
+	 * The first usable region must be PMD aligned. Mark its start
+	 * as MEMBLOCK_NOMAP if it isn't
+	 */
+	for_each_memblock(memory, reg) {
+		if (!memblock_is_nomap(reg)) {
+			if (!IS_ALIGNED(reg->base, PMD_SIZE)) {
+				phys_addr_t len;
+
+				len = round_up(reg->base, PMD_SIZE) - reg->base;
+				memblock_mark_nomap(reg->base, len);
+			}
+			break;
+		}
+	}
+
 	for_each_memblock(memory, reg) {
 		phys_addr_t block_start = reg->base;
 		phys_addr_t block_end = reg->base + reg->size;
-- 
2.20.1


  parent reply	other threads:[~2019-09-29 17:36 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-29 17:35 [PATCH AUTOSEL 4.14 01/23] clk: jz4740: Add TCU clock Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 02/23] MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 03/23] i2c-cht-wc: Fix lockdep warning Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 04/23] mfd: intel-lpss: Remove D3cold delay Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 05/23] PCI: tegra: Fix OF node reference leak Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 06/23] livepatch: Nullify obj->mod in klp_module_coming()'s error path Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 07/23] ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 08/23] ARM: 8875/1: Kconfig: default to AEABI w/ Clang Sasha Levin
2019-09-29 18:08   ` Nathan Chancellor
2019-10-05 23:02     ` Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 09/23] MIPS: lantiq: update the clock alias' for the mainline PCIe PHY driver Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 10/23] firmware: bcm47xx_nvram: Correct size_t printf format Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 11/23] rtc: snvs: fix possible race condition Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 12/23] HID: apple: Fix stuck function keys when using FN Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 13/23] PCI: rockchip: Propagate errors for optional regulators Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 14/23] PCI: imx6: " Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 15/23] PCI: exynos: Propagate errors for optional PHYs Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 16/23] security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb() Sasha Levin
2019-09-29 17:35 ` Sasha Levin [this message]
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 18/23] fat: work around race with userspace's read via blockdev while mounting Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 19/23] pktcdvd: remove warning on attempting to register non-passthrough dev Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 20/23] hypfs: Fix error number left in struct pointer member Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 21/23] kbuild: clean compressed initramfs image Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 22/23] ocfs2: wait for recovering done after direct unlock request Sasha Levin
2019-09-29 17:35 ` [PATCH AUTOSEL 4.14 23/23] kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190929173535.9744-17-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mike.rapoport@gmail.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=rppt@linux.ibm.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).