Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3399646ybp; Sun, 6 Oct 2019 11:04:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqwjl0wC3Ss07mbQH15lFSVCfY7KcyodF3ad9OxiJ0xrZ3xiSQm4yGsSMQFWupofBPbYQrn8 X-Received: by 2002:a17:906:4883:: with SMTP id v3mr2424933ejq.20.1570385097015; Sun, 06 Oct 2019 11:04:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570385097; cv=none; d=google.com; s=arc-20160816; b=kgV4wmKPng59vtOdxTOIR+Q3+6RJWV1nbVolb2bhLipD5DdXxs8PIsINysWXAXFPLg XylPd7jRJmqL+0M5naap3oHZXgQzQJltRh30rCNkBhEjz3wTAPpJM3DBoRP+bjWTX1xZ 9aKF1f6TaHQBtNH8O6jRV1GRFn+MGvSBH4QfjAXDAFz6xMYaqxNdp+ypYU+sQDDYDljo ptmacq4Cpp6WJ3pWZi7MB8loXdv3NRNQDGLYx+CktEGD4uAV4/KQhuHu7/I+P22J0pAG DkzQYTmR8tQ+Fb4u+2FEQTZnGDA5UWj7wS8aHga02NynzRKcVwfz1KwsGTauR4xwceDK tEhg== 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=aWjvlqLRyReu7rguzIE91C7EOs/Y+SEbrllZ06IoOyM=; b=psnYJabLDMIWBpk1588ZADlQHwCEP+w6tZ9xZXIagGwbPpYdXVF7h6ofNpnh6niu2p zKX/F9gZcb498bdnByeDoM4STHgVNxi3+8IgHz8Jzxfti+dcxqgO5ljO90zUu9qK45w4 U6qukzecR4rTzYuhPQYhFfVNqjw06xd03wYdajjkQAMEHJCCos2GNC1FBo+192IBJVC1 GnLkqjLe4KUgsw37rwu7qbc5ax+6JPHAIPdZFok4XvKDXd1Cwldtt5aFKEI5le1Xabew 53u8R4FEBVV08FwxmmLaoZF2Bpg58PkJr0ngO+cioCUsALSUq5LjdLsHmPj139l75NcB wbng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sDX5cb4C; 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 gg17si5689747ejb.294.2019.10.06.11.04.33; Sun, 06 Oct 2019 11:04:57 -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=sDX5cb4C; 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 S1727657AbfJFRXm (ORCPT + 99 others); Sun, 6 Oct 2019 13:23:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:48310 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726976AbfJFRXk (ORCPT ); Sun, 6 Oct 2019 13:23:40 -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 F1DB12080F; Sun, 6 Oct 2019 17:23:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570382619; bh=CQnZku+V2XYvD/uLD2B3L9n+D2PqQKOkNufdS9zUJCQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sDX5cb4Cavtv76zQDy8fy56brwLqoD34YFtz2Wj1AmBQ+P2AEx3M5onYpjauGMx7k quuuxvyKhSCpHdvnrKWl1oKRksCyRBcHm1YItjHOzOAzbHcFsShXOvQBlHDjJ4Rs7d xrEscNJXixFQ0VRplTQ6L/DSiFeUf5QmPsUn3eCk= 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 4.9 25/47] ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address Date: Sun, 6 Oct 2019 19:21:12 +0200 Message-Id: <20191006172018.218122485@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006172016.873463083@linuxfoundation.org> References: <20191006172016.873463083@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 f7c741358f37e..241bf898adf5b 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -1168,6 +1168,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