Hi,
I made a custom kernel and it crashes at the below code snippet. Can
any one explain whats being done in the below code. It comes from
mm/init.c. The error I get on failure is :
Checking if this processor honours the WP bit even in supervisor
mode... Starting Phase 0Starting Phase 1.
general protection fault: bb80 [#1]
SMP
Modules linked in:
CPU: 0
EIP: 0000:[<00000000>] Not tainted VLI
EFLAGS: c014705c (2.6.18.8-xen #1)
EIP is at rest_init+0x3fefe000/0x30
eax: 00000000 ebx: 00030001 ecx: ffffffff edx: 00000000
esi: 0000bb80 edi: 00000000 ebp: c03e9d9c esp: c03e9d90
ds: 8325 es: 0061 ss: e021
The code segment:
void __init test_wp_bit(void)
{
/*
* Ok, all PSE-capable CPUs are definitely handling the WP bit right.
*/
const unsigned long vaddr = PAGE_OFFSET;
pgd_t *pgd;
pmd_t *pmd;
pte_t *pte, old_pte;
printk("Checking if this processor honours the WP bit even in
supervisor mode... ");
pgd = swapper_pg_dir + __pgd_offset(vaddr);
pmd = pmd_offset(pgd, vaddr);
pte = pte_offset(pmd, vaddr);
old_pte = *pte;
*pte = mk_pte_phys(0, PAGE_READONLY);
local_flush_tlb();
boot_cpu_data.wp_works_ok = do_test_wp_bit(vaddr);
*pte = old_pte;
local_flush_tlb();
if (!boot_cpu_data.wp_works_ok) {
printk("No.\n");
#ifdef CONFIG_X86_WP_WORKS_OK
panic("This kernel doesn't support CPU's with broken
WP. Recompile it for a 386!");
#endif
} else {
printk("Ok.\n");
}
}
Regards,
Asim
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ