Riccardo Mottola, le Wed 16 May 2012 00:35:02 +0200, a écrit :
> I attach a screenshot on how my kernel panics when I just "ping" localhost.
> I provide a "screenshot" since I had to uninstall any ssh, telnet or login
> daemon to be able to boot.

The address looked odd to me, but with the backtrace it's much clearer.
It's simply the bios32 entry call which needs to be offset, like Linux
does. Please try the attached patch over the latest git tree.

Samuel
diff --git a/linux/src/arch/i386/kernel/bios32.c 
b/linux/src/arch/i386/kernel/bios32.c
index 4747972..b069ce4 100644
--- a/linux/src/arch/i386/kernel/bios32.c
+++ b/linux/src/arch/i386/kernel/bios32.c
@@ -206,7 +206,7 @@ static int check_pcibios(void)
        int pack;
 
        if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
-               pci_indirect.address = pcibios_entry;
+               pci_indirect.address = phystokv(pcibios_entry);
 
                save_flags(flags); cli();
                __asm__("lcall *(%%edi); cld\n\t"
@@ -903,7 +903,7 @@ unsigned long pcibios_init(unsigned long memory_start, 
unsigned long memory_end)
                        } else {
                                bios32_entry = check->fields.entry;
                                printk ("pcibios_init : BIOS32 Service 
Directory entry at 0x%lx\n", bios32_entry);
-                               bios32_indirect.address = bios32_entry;
+                               bios32_indirect.address = 
phystokv(bios32_entry);
                        }
                }
        }

Reply via email to