[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU Mach: disabling all network device drivers
From: |
Zheng Da |
Subject: |
Re: GNU Mach: disabling all network device drivers |
Date: |
Wed, 9 Jun 2010 01:22:48 -0400 |
Hello,
On Tue, Jun 8, 2010 at 8:08 AM, Samuel Thibault <samuel.thibault@gnu.org> wrote:
>> (null):~# addr2line -e /boot/gnumach-nodrv 0x13f163
>> /root/gnumach-build1/../gnumach/i386/i386at/interrupt.S:40
>> It's exactly where CPU should jump to. So it seems the stack is correct.
>
> Ok. So probably the protection is not for some reason. Could you try to
> put a nop right after sti, to check whether it's when reading the stack
> or when reading the instruction?
After I insert nop right behind sti, the CPU stops at
Kernel General protection trap, eip 0x1076e5
kernel: General protection (13), code=25a
Stopped at 0x1076e5: movl %edx,%eax
See spl().
spl:
movl EXT(pic_mask)(,%edx,4),%eax
/* get PIC mask */
cli /* disable interrupts */
xchgl EXT(curr_ipl),%edx /* set ipl */
SETMASK() /* program PICs with new mask */
sti /* enable interrupts */
nop
movl %edx,%eax /* return previous ipl */
ret
So which instruction triggers the trap? nop or movl?
Zheng Da