NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-i386/37434: kernel trap when trying to power down via apm
The following reply was made to PR port-i386/37434; it has been noted by GNATS.
From: Martin Husemann <martin%duskware.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: port-i386/37434: kernel trap when trying to power down via apm
Date: Tue, 18 Mar 2008 11:43:24 +0100
I just verified it still happens with -current. Here is some more info:
unmounting file systems... done
APM set power state <2ff,3>: unrecognized device ID (0x907)
uvm_fault(0xc9b95d04, 0x8000, 1) -> 0xe
kernel: supervisor trap page fault, code=0
Stopped in pid 4.1 (poweroff) at netbsd:trap+0x6d5: movb
0(%edx),
%al
db> sh reg
ds 0x10
es 0x10
fs 0x30
gs 0x10
edi 0x1
esi 0xc9b909f0
ebp 0xcac69b22
ebx 0x4
edx 0x8726
ecx 0
eax 0xcac69b2e
eip 0xc023a579 trap+0x6d5
cs 0x8
eflags 0x10056
esp 0xcac69aba
ss 0x10
netbsd:trap+0x6d5: movb 0(%edx),%al
db> x/x,4 0xcac69aba
0xcac69b0a: 210000 0 91a80000 c08b0001
db>
0xcac69b1a: cac6813a 1 67890000 c0103098
db>
0xcac69b2a: cac69b2e 9ea80010 30 8000010
db>
0xcac69b3a: dead0058 1 cac6813a 67890000
db>
0xcac69b4a: c08b0001 9069c1c 21 fdfc
db>
0xcac69b5a: 4 fdfc 8726 50
db>
0xcac69b6a: 10002 82d90058 1 cac6813a
db>
0xcac69b7a: 67890000 cac69b92 c08b0001 9069c1c
db>
0xcac69b8a: 3 5307 300010 580010
db>
0xcac69b9a: 9bf08129 80cd80fc 10 80360016
db>
And gdb says:
0xc023a579 is in trap (../../../../arch/i386/i386/trap.c:428).
423 * a fast interrupt. This should not be possible. It
can be
424 * fixed by rearranging the trap frame so that the
stack format
425 * at this point is the same as on exit from a `slow'
426 * interrupt.
427 */
428 switch (*(u_char *)frame->tf_eip) {
429 case 0xcf: /* iret */
430 vframe = (void *)((int)&frame->tf_esp -
431 offsetof(struct trapframe, tf_eip));
432 resume = (int)resume_iret;
(gdb) x/23i 0xc023a530
0xc023a530 <trap+1676>: add %cl,(%edi)
0xc023a532 <trap+1678>: xchg %edx,%ebx
0xc023a534 <trap+1680>: add %eax,(%eax)
0xc023a536 <trap+1682>: add %al,0x840f02fa(%ebx)
0xc023a53c <trap+1688>: pop %edi
0xc023a53d <trap+1689>: add (%eax),%al
0xc023a53f <trap+1691>: add %al,0x840f04fa(%ebx)
0xc023a545 <trap+1697>: les (%edx),%eax
0xc023a547 <trap+1699>: add %al,(%eax)
0xc023a549 <trap+1701>: dec %edx
0xc023a54a <trap+1702>: je 0xc023a556 <trap+1714>
0xc023a54c <trap+1704>: xor %eax,%eax
0xc023a54e <trap+1706>: mov %eax,0xffffffd4(%ebp)
0xc023a551 <trap+1709>: jmp 0xc023a160 <trap+700>
0xc023a556 <trap+1714>: mov $0x7,%eax
0xc023a55b <trap+1719>: jmp 0xc023a54e <trap+1706>
0xc023a55d <trap+1721>: lea 0x0(%esi),%esi
0xc023a560 <trap+1724>: movl $0x0,0xffffffa4(%ebp)
0xc023a567 <trap+1731>: movl $0x0,0xffffffa8(%ebp)
0xc023a56e <trap+1738>: jmp 0xc0239ed7 <trap+51>
0xc023a573 <trap+1743>: mov 0x8(%ebp),%eax
0xc023a576 <trap+1746>: mov 0x34(%eax),%edx
0xc023a579 <trap+1749>: mov (%edx),%al
Is that what you wanted to know?
Martin
Home |
Main Index |
Thread Index |
Old Index