Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3388360ybp; Sun, 6 Oct 2019 10:50:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqysqMDJctiSN7RyhrdP77uNNx5d0FaVh3lKKcY25WGoXV+Ty9Gxv7pVoec2NKJt1DUShxju X-Received: by 2002:a05:6402:290:: with SMTP id l16mr25573814edv.178.1570384230824; Sun, 06 Oct 2019 10:50:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570384230; cv=none; d=google.com; s=arc-20160816; b=hZQUqNUFySufDM8D5Ixn4gBRUYCavSO/+nGsTdhC4s/C/DkyqxDMKCeQLhdMAH+xip 1i8+hnJ4YlrsV68OJEpITR1pZElDdF3NalItB29QFsclPE8FjFgL+q0HWCUvQzyr6rMu 5ni07Exch9YT+9MEro5jjADzf7hxNM/xxFBU/xRFza977LJc5vhiubTd6t3IaTUmWLSR ypNXtM0PQpDblaaUXgW2M9GNu1tgbCb7/KQchZgC73mJ7IcKy1YD3d7yyYouLP753nOP 9aOM8PeY4Vbv2ppI6DfR5lGgvJM1Mch0YkwPrdJuIjr4DuPlKmxCJ9Zf45xe9IYScsy4 JAyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=y9l0zQUI/e25fnW/+imAsb1IYq/5ggO57Ov0ldwuIdw=; b=Gk2qkf/q/QaElJ6WeuwxKXQs0YPT3PnDXqJ/IvI2PjDdoVHf3cB+czb2Nr2veJN49N p26ahccsGRRCdEOjYXuaRK46ufrNZVMA2nq2TsEUvk2zFKZuvV69AWFUwAKteZ11jFp0 mKlMMFWg/HfcNqdHgg0M0iniKoTKdUjJIkVxSIrbjfqJk+JTJYzWf8ZoSwyHko3XY/68 ScUhX9bzu+IqJopreBcIPkKuH0xj3PMgbKUc8hvq5GXYAikJRGsR/y5QF3CRYmhuQdvH 0ai+FYJ1RCuxee9d89j1z8MmVjRaTdSuWF2ht1BwgqzcFc17wadMvyytv/riL/Ow6Bzl FHyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QuHNWta3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z12si5754100ejb.312.2019.10.06.10.50.07; Sun, 06 Oct 2019 10:50:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QuHNWta3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730244AbfJFRsO (ORCPT + 99 others); Sun, 6 Oct 2019 13:48:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:43954 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731589AbfJFRnx (ORCPT ); Sun, 6 Oct 2019 13:43:53 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 73A9C2080F; Sun, 6 Oct 2019 17:43:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383833; bh=hAUa0TrWfb4X363IN8Z1okqGk+klZDY+uWc9BkkRJr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QuHNWta3vn368odS+TncBu7rLS/FUSJka8Wk6m3rCglieoLnMYfvn0Kj12srMAJ+f 4VtA91SQW3dF1SuVjmIaCGDKSp3yYhejL6bjQrFn47CDJlvcQ7mEwiIF+TB3bzDLHH Qg25wUocHH/lYusZ1WxrlWotov24GksbTpZVqZsU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mike Rapoport , Russell King , Sasha Levin Subject: [PATCH 5.3 112/166] ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address Date: Sun, 6 Oct 2019 19:21:18 +0200 Message-Id: <20191006171222.815356851@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Rapoport [ 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 Signed-off-by: Russell King Signed-off-by: Sasha Levin --- 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 d9a0038774a6d..d5e0b908f0bad 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -1177,6 +1177,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