public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] aio: fix D-cache aliasing issues
@ 2013-11-15 22:05 Helge Deller
  2013-11-15 22:42 ` James Bottomley
  0 siblings, 1 reply; 17+ messages in thread
From: Helge Deller @ 2013-11-15 22:05 UTC (permalink / raw)
  To: Benjamin LaHaise, linux-aio, linux-kernel, linux-parisc,
	James Bottomley

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@gmx.de>
To: Benjamin LaHaise <bcrl@kvack.org>
To: linux-aio@kvack.org
Cc: stable@vger.kernel.org    # 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);
 


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2013-11-18 11:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-15 22:05 [PATCH] aio: fix D-cache aliasing issues Helge Deller
2013-11-15 22:42 ` James Bottomley
2013-11-16 20:07   ` Simon Baatz
2013-11-16 20:09     ` Benjamin LaHaise
2013-11-17 21:23       ` Helge Deller
2013-11-17 21:49         ` James Bottomley
2013-11-17 23:47           ` Helge Deller
2013-11-18  0:52             ` James Bottomley
2013-11-18  1:15               ` John David Anglin
2013-11-18  1:50                 ` James Bottomley
2013-11-18  1:03             ` John David Anglin
2013-11-18 10:54         ` Simon Baatz
2013-11-18 11:24           ` Aw: " Helge Deller
2013-11-16 22:06     ` James Bottomley
2013-11-16 22:32       ` John David Anglin
2013-11-16 22:37         ` James Bottomley
2013-11-16 22:49           ` John David Anglin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox