Message ID | 62cbdcd90908270144v2e52e3ceg36c31abad3fced61@mail.gmail.com |
---|---|
State | New, archived |
Headers | show |
On 08/27/2009 11:44 AM, massimo cirillo wrote: > From: Massimo Cirillo<maxcir@gmail.com> > > The function jffs2_nor_wbuf_flash_setup() doesn't allocate the verify buffer > if CONFIG_JFFS2_FS_WBUF_VERIFY is defined, so causing a kernel panic when > that macro is enabled and the verify function is called. Similarly the > jffs2_nor_wbuf_flash_cleanup() must free the buffer if > CONFIG_JFFS2_FS_WBUF_VERIFY is enabled. > The following patch fixes the problem. > The following patch applies to 2.6.30 kernel. Applied to l2-mtd-2.6.git. But please, do not send line-wrapped patches.
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c old mode 100644 new mode 100755 index d9a721e..5ef7bac --- a/fs/jffs2/wbuf.c +++ b/fs/jffs2/wbuf.c @@ -1268,10 +1268,20 @@ int jffs2_nor_wbuf_flash_setup(struct jffs2_sb_info *c) { if (!c->wbuf) return -ENOMEM; +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY + c->wbuf_verify = kmalloc(c->wbuf_pagesize, GFP_KERNEL); + if (!c->wbuf_verify) { + kfree(c->wbuf); + return -ENOMEM; + } +#endif return 0; } void jffs2_nor_wbuf_flash_cleanup(struct jffs2_sb_info *c) { +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY + kfree(c->wbuf_verify); +#endif kfree(c->wbuf); }