[PATCH v2 0/4] Fix kernel panic in dma-coherent allocations

From: Brian Starkey
Date: Mon Feb 29 2016 - 11:09:39 EST


These patches implement a MEMREMAP_WC flag for memremap(), which can
be used to obtain writecombine mappings. This is then used for setting
up dma_coherent_mem regions which use the DMA_MEMORY_MAP flag.

The motivation is to fix an alignment fault on arm64, and the
suggestion to implement MEMREMAP_WC for this case was made at [1].
That particular issue is handled in patch 4, which makes sure that the
appropriate memset function is used when zeroing allocations mapped as
IO memory.

Best Regards,

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/390857.html

Changes since v1:
* Added preparatory patch removing flag modifications in memremap()
(Suggested by Andrew Morton)
* Rebase onto linux-next

Brian Starkey (4):
memremap: don't modify flags
memremap: add MEMREMAP_WC flag.
drivers: dma-coherent: use MEMREMAP_WC for DMA_MEMORY_MAP
drivers: dma-coherent: use memset_io for DMA_MEMORY_IO mappings

drivers/base/dma-coherent.c | 25 ++++++++++++++++++++-----
include/linux/io.h | 1 +
kernel/memremap.c | 24 +++++++++++++++---------
3 files changed, 36 insertions(+), 14 deletions(-)