Re: [Yaffs] YAFFS and 2.6.34-rc7 breakage

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Bob Dunlop
Date:  
To: Nick Bane
CC: yaffs
Subject: Re: [Yaffs] YAFFS and 2.6.34-rc7 breakage
On Mon, May 17 at 09:27, Nick Bane wrote:
> >
> > I've been trying out the latest git version of yaff2 with the 2.6.34-rc7
> > kernel and the system won't boot :-(
> >
> My recent 2.6.34-rc7 ci in balloonboard.org was only tested for a TCL build
> so it is possible that there may be missing config options for other builds
> if that is what you are using. Specifically one has to enable the AEABI
> option and (for the buildroot system) it seemed that I needed to also
> enable the OABI compat setting too. This was with an older version of
> yaffs2 (cvs ver 18662) so that also might have something to do eith it. I
> think Wookey also fixed that problem recently too.


Okay AEABI led me a merry dance, had to install a new tool chain. Good for
the soul I guess. Anyway the problem persists with either ABI. Now testing
with the 2.6.34 stable source.

I'm not using the balloon board code, although at some point I'll have to
support the 2.05g. I've looked at the balloonboard patches and can see nothing
significantly different apart from I have NFS disabled.

> The older yaffs2 version builds and boots fine for me into an existing rootfs.


Yep older CVS yaffs works with 2.6.33 it's just 2.6.34 that looks broke to me.


Anyway I have a patch that works for me by deleting a couple of kfree()s and
corresponding yaffs_CloneString()s, but clearly they must have been there for
some purpose. So can anyone tell me why this patch is bad, or how some builds
work without it ?


--- yaffs_fs.c-orig    2010-05-24 13:17:05.000000000 +0100
+++ yaffs_fs.c    2010-05-24 15:05:47.000000000 +0100
@@ -616,7 +616,6 @@
         return -ENOMEM;


     ret = vfs_readlink(dentry, buffer, buflen, alias);
-    kfree(alias);
     return ret;
 }


@@ -642,7 +641,6 @@
     }


     ret = vfs_follow_link(nd, alias);
-    kfree(alias);
 out:
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 13))
     return ERR_PTR(ret);
--- yaffs_guts.c-orig    2010-05-24 14:41:39.000000000 +0100
+++ yaffs_guts.c    2010-05-24 14:42:25.000000000 +0100
@@ -7638,9 +7638,9 @@
 {
     obj = yaffs_GetEquivalentObject(obj);
     if (obj->variantType == YAFFS_OBJECT_TYPE_SYMLINK)
-        return yaffs_CloneString(obj->variant.symLinkVariant.alias);
+        return obj->variant.symLinkVariant.alias;
     else
-        return yaffs_CloneString(_Y(""));
+        return _Y("");
 }


#ifndef CONFIG_YAFFS_WINCE


-- 
        Bob Dunlop