> From: Seth Jennings [mailto:sjenning@xxxxxxxxxxxxxxxxxx] > Sent: Tuesday, September 13, 2011 1:19 PM > To: gregkh@xxxxxxx > Cc: devel@xxxxxxxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; ngupta@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > francis.moro@xxxxxxxxx; 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 <sjenning@xxxxxxxxxxxxxxxxxx> 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 <dan.magenheimer@xxxxxxxxxx> > --- > 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, > 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 > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel