Messages in this thread |  | | From | Linus Torvalds <> | Date | Wed, 10 Oct 2001 13:00:29 -0700 | Subject | Re: Invalid operand with 2.4.11 |
| |
In article <Pine.LNX.4.33.0110102109460.1363-100000@eduard.t-online.de> you write: > >I am using a SuSE 7.2 distro. When I'm starting their yast2, it crashes >reliably and leaves this message in the log (run through ksymoops):
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/
|  |