From mboxrd@z Thu Jan 1 00:00:00 1970 From: linux@prisktech.co.nz (Tony Prisk) Date: Mon, 15 Oct 2012 09:34:55 +1300 Subject: dma_alloc_coherent fails in framebuffer In-Reply-To: <1350192523.10946.4.camel@gitbox> References: <1350192523.10946.4.camel@gitbox> Message-ID: <1350246895.11504.6.camel@gitbox> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, 2012-10-14 at 18:28 +1300, Tony Prisk wrote: > Up until 07 Oct, drivers/video/wm8505-fb.c was working fine, but on the > 11 Oct when I did another pull from linus all of a sudden > dma_alloc_coherent is failing to allocate the framebuffer any longer. > > I did a quick look back and found this: > > ARM: add coherent dma ops > > arch_is_coherent is problematic as it is a global symbol. This > doesn't work for multi-platform kernels or platforms which can support > per device coherent DMA. > > This adds arm_coherent_dma_ops to be used for devices which connected > coherently (i.e. to the ACP port on Cortex-A9 or A15). The arm_dma_ops > are modified at boot when arch_is_coherent is true. > > Signed-off-by: Rob Herring > Cc: Russell King > Cc: Marek Szyprowski > Signed-off-by: Marek Szyprowski > > > This is the only patch lately that I could find (not that I would claim > to be any good at finding things) that is related to the problem. Could > it have caused the allocations to fail? > > Regards > Tony P Have done a bit more digging and found the cause - not Rob's patch so apologies. The cause of the regression is this patch: >>From f40d1e42bb988d2a26e8e111ea4c4c7bac819b7e Mon Sep 17 00:00:00 2001 From: Mel Gorman Date: Mon, 8 Oct 2012 16:32:36 -0700 Subject: [PATCH 2/3] mm: compaction: acquire the zone->lock as late as possible Up until then, the framebuffer allocation with dma_alloc_coherent(...) was fine. From this patch onwards, allocations fail. I don't know how this patch would effect CMA allocations, but it seems to be causing the issue (or at least, it's caused an error in arch-vt8500 to become visible). Perhaps someone who understand -mm could explain the best way to troubleshoot the cause of this problem? Regards Tony P