Messages in this thread | | | Date | Sun, 2 Nov 2003 14:35:35 +0100 | From | Andi Kleen <> | Subject | Re: PROBLEM: Oops in __is_prefetch with 2.6.0-test9-bk4 at boot time with Athlon XP 1800+ |
| |
On Sun, 2 Nov 2003 10:48:51 +0100 Matthias Hanisch <matze@camline.com> wrote:
> Then it faults in __get_user, (double-fault), enters again __is_prefetch via > do_page_fault, this address (the fault address in first __is_prefetch call) is > handled properly and then the oops is reported as described yesterday. > Applying your init patch seems to cure this problem, but then - as I said in > the beginning - it loops infinitely.
When the __init patch helps means someone uses an exception table entry in an __init or __exit function. The linker cannot deal with that and the exception table ends up unordered, which breaks the exception handling. That's a bug and needs to be fixed because it will break more than just __is_prefetch
There are two options: - Either sort the exception table at runtime - Or track down the code. The way to track this down (if you want to do this) is to dump the __ex_table ELF section in vmlinux using objdump. It consists of pairs of addresses. The first address in the pair should be ordered over the section. Find the unordered address and decode the second address using System.map. Then fix that function either dropping the __init/__exit or eliminating the bad entry otherwise. If you send me your .config in an usable way I can probably do this for you.
> > At the moment I have no more ideas what to do here...
Maybe you just have a miscompilation of some sort. Do a make mrproper and try again. You can also try if it happens with a smaller configuration.
-Andi
> > > > > > > > - 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/
| |