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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox