From: Estelle HAMMACHE <estelle.hammache@st.com>
To: Konstantin Kletschke <lists@ku-gbr.de>
Cc: linux-mtd@lists.infradead.org
Subject: Re: Oops vanilla 2.6.10
Date: Wed, 16 Feb 2005 15:54:16 +0100 [thread overview]
Message-ID: <42135E98.E187DD1A@st.com> (raw)
In-Reply-To: 20050216133753.GD16239@synertronixx3
Konstantin Kletschke wrote:
> EEEEEK. jffs2_mark_node_obsolete called with NULL node
> >>EIP; c00bfed0 <jffs2_build_remove_unlinked_inode+30/ec> <=====
>
> >>r3; c01b1ed4 <log_wait+0/8>
>
> Trace; c00bfea0 <jffs2_build_remove_unlinked_inode+0/ec>
> Trace; c00bfcf8 <jffs2_build_filesystem+1e4/38c>
> Trace; c00bfb14 <jffs2_build_filesystem+0/38c>
Not sure this is relevant, (and I have no way to test it right now),
but it could be related to the obsolete node merging. You have NOR
flash haven't you ?
In jffs2_build_remove_unlinked_inode
raw = ic->nodes;
while (raw != (void *)ic) {
struct jffs2_raw_node_ref *next = raw->next_in_ino;
D1(printk(KERN_DEBUG "obsoleting node at 0x%08x\n", ref_offset(raw)));
jffs2_mark_node_obsolete(c, raw);
raw = next;
}
However if "next" is also raw->next_phys and is already obsolete
and is the last in the next_in_ino chain, I think it may be
freed in jffs2_mark_node_obsolete:
/* Merge with the next node in the physical list, if there is one
and if it's also obsolete and if it doesn't belong to any inode */
if (ref->next_phys && ref_obsolete(ref->next_phys) &&
!ref->next_phys->next_in_ino) {
struct jffs2_raw_node_ref *n = ref->next_phys;
spin_lock(&c->erase_completion_lock);
ref->__totlen += n->__totlen;
ref->next_phys = n->next_phys;
if (jeb->last_node == n) jeb->last_node = ref;
if (jeb->gc_node == n) {
/* gc will be happy continuing gc on this node */
jeb->gc_node=ref;
}
spin_unlock(&c->erase_completion_lock);
jffs2_free_raw_node_ref(n);
}
This would explain things... if you think it is plausible you could
try commenting out the node merging in jffs2_mark_node_obsolete.
Estelle
next prev parent reply other threads:[~2005-02-16 15:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-16 11:47 Oops vanilla 2.6.10 Konstantin Kletschke
2005-02-16 11:51 ` Artem B. Bityuckiy
2005-02-16 12:01 ` Thomas Gleixner
2005-02-16 12:20 ` Konstantin Kletschke
2005-02-16 12:24 ` Thomas Gleixner
2005-02-16 12:44 ` Konstantin Kletschke
2005-02-16 13:36 ` Thomas Gleixner
2005-02-16 13:37 ` Konstantin Kletschke
2005-02-16 14:05 ` Thomas Gleixner
2005-02-16 14:54 ` Estelle HAMMACHE [this message]
2005-02-16 15:28 ` Artem B. Bityuckiy
2005-02-16 16:29 ` Konstantin Kletschke
2005-02-16 16:51 ` Artem B. Bityuckiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42135E98.E187DD1A@st.com \
--to=estelle.hammache@st.com \
--cc=linux-mtd@lists.infradead.org \
--cc=lists@ku-gbr.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.