Skip to content

Fix kernel panic in dma-coherent allocations

Brian Starkey linux-arm-kernel lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest4 patches 2 repliesIn review
  2. v13 patches 12 repliesSuperseded

Changes in v2 from the cover letter

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

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4memremap: don't modify flagskernel/memremap.c+7 -70 replies
2/4memremap: add MEMREMAP_WC flag.include/linux/io.h kernel/memremap.c+12 -20 replies
3/4drivers: dma-coherent: use MEMREMAP_WC for DMA_MEMORY_MAPdrivers/base/dma-coherent.c+16 -40 replies
4/4drivers: dma-coherent: use memset_io for DMA_MEMORY_IO mappingsdrivers/base/dma-coherent.c+4 -12 replies

Reviews trailers per patch

3 of 4 patches have a Reviewed-by or Acked-by.

PatchCatalin Marinas
1/4
2/4R-b
3/4R-b
4/4R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

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

Hi,

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,
Brian

[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(-)
Signature · 1 line
1.7.9.5