> From: Dan Magenheimer > Sent: Tuesday, September 13, 2011 2:56 PM > To: Seth Jennings; gregkh@xxxxxxx > Cc: devel@xxxxxxxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; ngupta@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > francis.moro@xxxxxxxxx > Subject: RE: [PATCH] staging: zcache: fix cleancache crash > > > 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> 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 > > --- > > 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 > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. 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