From: Simon Horman <horms@verge.net.au>
To: linux-sh@vger.kernel.org
Subject: Re: [PATCH v2] ARM: shmobile: No R-Car Gen2 CMA reservation when HIGHMEM=n
Date: Thu, 22 Jan 2015 02:19:14 +0000 [thread overview]
Message-ID: <20150122021913.GA31170@verge.net.au> (raw)
In-Reply-To: <20150121050137.8410.36127.sendpatchset@little-apple>
On Wed, Jan 21, 2015 at 02:01:37PM +0900, Magnus Damm wrote:
> From: Magnus Damm <damm+renesas@opensource.se>
>
> Allow R-Car Gen2 platforms to boot with CMA enabled
> and HIGHMEM disabled. This patch adds code to check
> if the R-Car Gen2 specific memory reservation window
> is included in the kernel memory range or not. When
> HIGHMEM is disabled the R-Car Gen2 reservation area is
> outside the kernel memory range and in such case the
> memory reservation is simply skipped over.
>
> Without this patch the kernel boot hangs when CMA is
> enabled and HIGHMEM is disabled on the r8a7791 Koelsch
> hardware platform:
>
> WARNING: CPU: 1 PID: 1 at mm/cma.c:113 cma_init_reserved_areas+0x88/0x1d4()
> ...
> WARNING: CPU: 1 PID: 1 at mm/cma.c:121 cma_init_reserved_areas+0xf8/0x1d4()
> ...
> Unable to handle kernel NULL pointer dereference at virtual address 00000160
> pgd = c0003000
> [00000160] *pgd€000040004003, *pmd\0000000
> Internal error: Oops: 206 [#1] SMP ARM
> Modules linked in:
> CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
> 3.19.0-rc4-koelsch-01450-g7f9b6075ce12c3ea-dirty #735
> Hardware name: Generic R8A7791 (Flattened Device Tree)
> task: edc553c0 ti: edc56000 task.ti: edc56000
> PC is at set_pfnblock_flags_mask+0x54/0xa0
> LR is at 0x440
>
> In the current shmobile_defconfig HIGHMEM is enabled
> while CMA is disabled, so to trigger this the kernel
> configuration for both CMA and HIGHMEM needs to be
> adjusted.
>
> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Thanks, I have queued this up for v3.21.
> ---
>
> Changes since V1:
> - Included error log and Tested-by from Geert - thanks!
>
> Written on top of renesas-devel-20150114v2-v3.19-rc4
>
> arch/arm/mach-shmobile/setup-rcar-gen2.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --- 0001/arch/arm/mach-shmobile/setup-rcar-gen2.c
> +++ work/arch/arm/mach-shmobile/setup-rcar-gen2.c 2015-01-15 14:20:47.089397114 +0900
> @@ -21,6 +21,7 @@
> #include <linux/dma-contiguous.h>
> #include <linux/io.h>
> #include <linux/kernel.h>
> +#include <linux/memblock.h>
> #include <linux/of.h>
> #include <linux/of_fdt.h>
> #include <asm/mach/arch.h>
> @@ -197,7 +198,7 @@ void __init rcar_gen2_reserve(void)
>
> of_scan_flat_dt(rcar_gen2_scan_mem, &mrc);
> #ifdef CONFIG_DMA_CMA
> - if (mrc.size)
> + if (mrc.size && memblock_is_region_memory(mrc.base, mrc.size))
> dma_contiguous_reserve_area(mrc.size, mrc.base, 0,
> &rcar_gen2_dma_contiguous, true);
> #endif
>
prev parent reply other threads:[~2015-01-22 2:19 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-21 4:55 [PATCH v2] ARM: shmobile: No R-Car Gen2 CMA reservation when HIGHMEM=n Magnus Damm
2015-01-22 2:19 ` Simon Horman [this message]
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=20150122021913.GA31170@verge.net.au \
--to=horms@verge.net.au \
--cc=linux-sh@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).