Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
fatal integer divide fault in dk(4)
Hi,
I got the following fault with a recent -current kernel
on KVM since some days ago.
fatal integer divide fault in supervisor mode
trap type 8 code 0 rip ffffffff801b38fa cs 8 rflags 10246 cr2 0 ilevel
0 rsp fffffe800398cb48
curlwp 0xfffffe80035345c0 pid 0.42 lowest kstack 0xfffffe80039892c0
kernel: integer divide fault trap, code=0
Stopped in pid 0.42 (system) at netbsd:dk_strategy+0x41: divl
%esi,%eax
db{0}> bt
dk_strategy() at netbsd:dk_strategy+0x41
disk_read_sectors() at netbsd:disk_read_sectors+0x3b
read_sector() at netbsd:read_sector+0x1d
scan_mbr() at netbsd:scan_mbr+0x32
readdisklabel() at netbsd:readdisklabel+0x150
dk_getdisklabel() at netbsd:dk_getdisklabel+0xbf
dk_open() at netbsd:dk_open+0xf4
cdev_open() at netbsd:cdev_open+0xb2
spec_open() at netbsd:spec_open+0x25d
VOP_OPEN() at netbsd:VOP_OPEN+0x33
dkwedge_discover() at netbsd:dkwedge_discover+0xb4
config_interrupts_thread() at netbsd:config_interrupts_thread+0x2c
db{0}>
The place of rip is around the code below.
/*
* The transfer must be a whole number of blocks and the offset must
* not be negative.
*/
if ((bp->b_bcount % secsize) != 0 || bp->b_blkno < 0) {
ffffffff801b38f6: 89 c8 mov %ecx,%eax
ffffffff801b38f8: 31 d2 xor %edx,%edx
ffffffff801b38fa: f7 f6 div %esi
ffffffff801b38fc: 85 d2 test %edx,%edx
ffffffff801b38fe: 0f 85 8c 00 00 00 jne
ffffffff801b3990 <dk_strategy+0xd7>
ffffffff801b3904: 48 83 7b 48 00 cmpq $0x0,0x48(%rbx)
ffffffff801b3909: 0f 88 81 00 00 00 js
ffffffff801b3990 <dk_strategy+0xd7>
biodone(bp);
return;
}
I know what happens easily but I don't know
how to fix it. Can anyone fix it?
Thanks,
ozaki-r
Home |
Main Index |
Thread Index |
Old Index