Thread (8 messages) 8 messages, 4 authors, 2011-09-16

RE: [PATCH] staging: zcache: fix cleancache crash

From: Dan Magenheimer <hidden>
Date: 2011-09-15 14:16:44
Also in: lkml

From: Dan Magenheimer
Sent: Tuesday, September 13, 2011 2:56 PM
To: Seth Jennings; gregkh@suse.de
Cc: devel@driverdev.osuosl.org; linux-mm@kvack.org; ngupta@vflare.org; linux-kernel@vger.kernel.org;
francis.moro@gmail.com
Subject: RE: [PATCH] staging: zcache: fix cleancache crash
quoted
From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
Sent: Tuesday, September 13, 2011 1:19 PM
To: gregkh@suse.de
Cc: devel@driverdev.osuosl.org; linux-mm@kvack.org; ngupta@vflare.org; linux-kernel@vger.kernel.org;
francis.moro@gmail.com; Dan Magenheimer; Seth Jennings
Subject: [PATCH] staging: zcache: fix cleancache crash

After commit, c5f5c4db, cleancache crashes on the first
successful get. This was caused by a remaining virt_to_page()
call in zcache_pampd_get_data_and_free() that only gets
run in the cleancache path.

The patch converts the virt_to_page() to struct page
casting like was done for other instances in c5f5c4db.

Based on 3.1-rc4

Signed-off-by: Seth Jennings <redacted>
Yep, this appears to fix it!  Hopefully Francis can confirm.

Greg, ideally apply this additional fix rather than do the revert
of the original patch suggested in https://lkml.org/lkml/2011/9/13/234

Acked-by: Dan Magenheimer <redacted>

Greg, Francis has confirmed offlist that Seth's fix below
has fixed his issue as well.  Please apply, hopefully as
soon as possible and before 3.1 goes final!

Thanks,
Dan

 
quoted
---
 drivers/staging/zcache/zcache-main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
index a3f5162..462fbc2 100644
--- a/drivers/staging/zcache/zcache-main.c
+++ b/drivers/staging/zcache/zcache-main.c
@@ -1242,7 +1242,7 @@ static int zcache_pampd_get_data_and_free(char *data, size_t *bufsize, bool
raw,
quoted
 	int ret = 0;

 	BUG_ON(!is_ephemeral(pool));
-	zbud_decompress(virt_to_page(data), pampd);
+	zbud_decompress((struct page *)(data), pampd);
 	zbud_free_and_delist((struct zbud_hdr *)pampd);
 	atomic_dec(&zcache_curr_eph_pampd_count);
 	return ret;
--
1.7.4.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help