2.4.x kernels vs. IDT

halfdead (halfdead@daphnes.ro)
Sat, 6 Apr 2002 19:17:15 +0300 (EEST)


hey all! with the risk of being annoying i post again this message because
i am not sure the last i did found its way to the list due to some unknown
delays in majordomo`s subscribing procedure. so, here it is my problem in
detail:
i experience a weird IDT issue on kernels 2.4.x. what i want to do
is finding the address of a certain IDT gate but when i try to read memory
from ring0 at that location it segfaults. the code is in assembler.

.bss
idtr:
.double
.text

get_gate:
movl $0x80, %eax
sidt idtr
movl idtr+2, %ebx
leal (%ebx, %eax, 8), %ebx
movw (%ebx), %cx <- segfault

as far as i know, i retrieve the correct IDT base, but after the leal
instruction, %ebx has some unusual value. i suspect that either leal
instruction is misimplemented in gcc/as compilers or the kernel doesn`t
give me the right IDT. anyway, it could also be some obscure coding error
but i strongly doubt it.
i cannot find out why is this happening.. i would apreciate any help that i
can get.

best regards,
halfdead

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/