Re: fault in __d_lookup [Was: 2.6.25-mm1]

From: Jiri Slaby
Date: Mon Apr 21 2008 - 06:00:21 EST


On 04/21/2008 11:45 AM, Al Viro wrote:
On Mon, Apr 21, 2008 at 11:37:40AM +0200, Jiri Slaby wrote:
On 04/21/2008 11:06 AM, Al Viro wrote:
On Mon, Apr 21, 2008 at 10:31:40AM +0200, Jiri Slaby wrote:

hlist_for_each_entry_rcu(dentry, node, head, d_hash) {
struct qstr *qstr;

if (dentry->d_name.hash != hash)
continue;

walking into node == (struct hlist_node *)0x00f0000000000000...
Yup, true, In the last oops I stuck on memcmp few lines below.

BTW. it's 100% reproducible after it happens once, but fixable by reboot. Any tests I should run (memtest, some printks sticked anywhere)?

Well, if list has such turd in it, you'll certainly hit it every time
you walk that list, so 100% reproducible is not surprising.

How well is it reproducible from fresh boot?

Few days with suspend/resume cycles. This one was booted 12 hours ago, one suspend/resume. Will keep an eye on it and keep you informed.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/