When a user page mapping is released via kunmap*() functions, the D-cache needs to be flushed via flush_dcache_page() to avoid D-cache aliasing issues. This patch fixes aio on the parisc platform (and probably others). Signed-off-by: Helge Deller <deller@xxxxxx> To: Benjamin LaHaise <bcrl@xxxxxxxxx> To: linux-aio@xxxxxxxxx Cc: stable@xxxxxxxxxxxxxxx # 3.12+ diff --git a/fs/aio.c b/fs/aio.c index 823efcb..2181821 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -514,6 +514,7 @@ static void free_ioctx(struct work_struct *work) atomic_add(avail, &ctx->reqs_available); ring->head = ring->tail; kunmap_atomic(ring); + flush_dcache_page(ctx->ring_pages[0]); if (atomic_read(&ctx->reqs_available) >= ctx->nr_events - 1) break; @@ -568,6 +569,7 @@ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm) ring = kmap_atomic(ctx->ring_pages[0]); ring->id = ctx->id; kunmap_atomic(ring); + flush_dcache_page(ctx->ring_pages[0]); return 0; } @@ -1032,6 +1034,7 @@ static long aio_read_events_ring(struct kioctx *ctx, head = ring->head; tail = ring->tail; kunmap_atomic(ring); + flush_dcache_page(ctx->ring_pages[0]); pr_debug("h%u t%u m%u\n", head, tail, ctx->nr_events); -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html