Re: Oops with current linus' git tree

From: Nick Piggin
Date: Mon Jan 16 2006 - 23:23:26 EST


Nick Piggin wrote:
Diego Calleja wrote:

I'm having two noticeable problems with the current linus' tree

1) Oops while watching a DVD with kaffeine (kde based video player),
oops pasted below.


From your oops it looks as though the radix_tree_lookup in find_get_page
has returned 0x40. It could be a flipped bit - is your memory OK?

Can you apply the attached patch and try to reproduce the oops?


Really attached now.

--
SUSE Labs, Novell Inc.

Index: linux-2.6/lib/radix-tree.c
===================================================================
--- linux-2.6.orig/lib/radix-tree.c 2006-01-03 19:05:57.000000000 +1100
+++ linux-2.6/lib/radix-tree.c 2006-01-17 15:17:36.000000000 +1100
@@ -233,6 +233,8 @@ int radix_tree_insert(struct radix_tree_
int offset;
int error;

+ BUG_ON((unsigned long)item < PAGE_OFFSET);
+
/* Make sure the tree is high enough. */
if ((!index && !root->rnode) ||
index > radix_tree_maxindex(root->height)) {
@@ -334,6 +336,8 @@ void *radix_tree_lookup(struct radix_tre
void **slot;

slot = __lookup_slot(root, index);
+ if (slot && *slot)
+ BUG_ON((unsigned long)(*slot) < PAGE_OFFSET);
return slot != NULL ? *slot : NULL;
}
EXPORT_SYMBOL(radix_tree_lookup);