This may be related to something I just found -- in pmd_populate_kernel, a physical address is installed in the pmd instead of a virtual address. The patch I sent Ralf 30 minutes ago is attached :-) Kip Brian Murphy wrote: > > Hi, > > I get this now when my system (working well with 2.4) attempts to > read from the disk on my system: > > Freeing unused kernel memory: 88k freed > Unable to handle kernel paging request at virtual address 07cac000, epc > == 8005c > Oops in arch/mips/mm/fault.c::do_page_fault, line > 205[#1]: > Cpu 0 > $ 0 : 00000000 b0008400 00000000 fffffff4 > $ 4 : 07cac000 00000000 00011000 000007df > $ 8 : 07cac000 801e4ab8 811375e0 00000001 > $12 : 00000001 00100100 ffffffff 87fff284 > $16 : 00000000 07cac000 00000000 87ce5e98 > $20 : 00011000 ffffffbf 000007df 00008075 > $24 : 87fff28c 00000001 > $28 : 87ce4000 87ce5de8 87f1c720 80059e2c > Hi : 00000000 > Lo : 00000000 > epc : 80059cb0 Not tainted > Status: b0008403 > Cause : 00001008 > KERNEL EXL IE Process swapon (pid: 19, stackpage=87d22ac0) > Stack: 8004ee28 80106b68 811377e8 00000000 00000000 801d7c00 00011000 > ffc000000 > 8006a2d8 87ce5e98 00000201 c0000000 801d7c00 c0011000 ffc00000 > 87ce5e988 > 87f0a120 00000044 87f0a120 87f0b4e0 00000011 000000d2 00000020 > 000007df. > Call > Trace: > [<8004ee28>] pte_alloc_kernel+0x74/0x158 > [<80106b68>] blk_remove_plug+0x78/0x98 > [<80059e2c>] map_area_pmd+0x84/0xd0 > [<8006a2d8>] blkdev_readpage+0x0/0x28 > [<80059f98>] map_vm_area+0x74/0xe0 > [<8005a4f8>] __vmalloc+0x140/0x178 > [<800228c0>] autoremove_wake_function+0x0/0x44 > [<8006a150>] blkdev_get_block+0x0/0x74 > [<8005a544>] vmalloc+0x14/0x20 > [<8005e1bc>] sys_swapon+0x6ec/0x84c > [<8005dee4>] sys_swapon+0x414/0x84c > [<8021b000>] pci_scan_device+0xf0/0x1a8 > [<8000cc20>] stack_done+0x18/0x34 > [<80008413>] handle_ades_int+0x27/0x34 > > > Code: 8fb30040 3c140040 2415ffbf <8e220000> 8e630000 3c04801b > 2484cb6c 005 > > > Any pointers? I'm running in 32 bit mode. > > /Brian