[RFC][PATCH] making ubifs compile with gcc-3.4
Hamish Moffatt
hamish at cloud.net.au
Fri May 2 01:22:11 EDT 2008
ubifs fails to compile with my gcc 3.4.4 (for arm), bombing with:
fs/built-in.o: In function `ubifs_create_dflt_lpt':
lpt_commit.c:(.text+0x88690): undefined reference to `__you_cannot_kmalloc_that_much'
make[1]: *** [.tmp_vmlinux1] Error 1
It compiles with 4.1.2 ok though. Some web searches suggest that this is
due to a compiler bug. Patches have been applied in other parts of the
tree to work around this so perhaps you'll consider this patch for ubifs
also.
I found that rearranging the kmalloc order makes it compile. I don't
believe there is any effect on the behaviour.
Signed-off-by: Hamish Moffatt <hamish at cloud.net.au>
--
--- a/fs/ubifs/lpt.c (revision 4400)
+++ b/fs/ubifs/lpt.c (working copy)
@@ -597,11 +597,11 @@
/* Needed by 'ubifs_pack_lsave()' */
c->main_first = c->leb_cnt - *main_lebs;
+ lsave = kmalloc(sizeof(int) * c->lsave_cnt, GFP_KERNEL);
pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_KERNEL);
nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL);
buf = vmalloc(c->leb_size);
ltab = vmalloc(sizeof(struct ubifs_lpt_lprops) * c->lpt_lebs);
- lsave = kmalloc(sizeof(int) * c->lsave_cnt, GFP_KERNEL);
if (!pnode || !nnode || !buf || !ltab || !lsave) {
err = -ENOMEM;
goto out;
--
Hamish Moffatt VK3SB <hamish at debian.org> <hamish at cloud.net.au>
More information about the linux-mtd
mailing list