I'd absolutely _love_ it if you can pinpoint this to a particular
pre-release. Something like "it doesn't happen with pre5, but it does
happen with pre6". Or "pre6 was fine, but the final 2.4.11 breaks".
Mind doing that? Together with a full config file, and I'll have a much
better idea of what broke..
The oops itself _seems_ to because the slab debugging (which you had
enabled: good for you!) catches on CHECK_PAGE() when freeing the name
slab at the end of open_namei():
# define CHECK_PAGE(page) \
do { \
CHECK_NR(page); \
if (!PageSlab(page)) { \
printk(KERN_ERR "kfree: bad ptr %lxh.\n", \
(unsigned long)objp); \
BUG(); \
} \
} while (0)
but it's a bit hard sometimes to debug these things remotely. Did you
see that "kfree: bad ptr" message?
Anyway, I do have one (possibly bad) suspicion: one thing you can try
with plain 2.4.11 is to remove the "FASTCALL()" macro in <linux/fs.h>
around the __user_walk/path_init/path_walk/link_path_walk declarations.
Those FASTCALL's are new, and I wonder if gcc has register pressure
problems with them, which could cause corruption, which in turn would
explain how "open_namei()" would to try to free a bad pointer.
[ Yeah, that's it, blame it on the compiler.. ]
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/