> Hi
> 
> I have the next question.
> The FreeBSD on i386 don't use GS register, even kernel DDB don't show
> it. And at the time when kernel loaded and operational GS didn't 
> initialized yet and have some garbage value (something like 0x1f, i.e.
> pointed to the LDT). But because no one don't touch that all working fine.
> 
0x1f is not garbage, it's (FreeBSD) standard user data segment.

> Question.
> The some driver had code like this:
>       push    %gs <--- OK 0x1f  saved on the stack
>       ...  
>       call    do_big_deal
>       ...
>       pop     %gs <--- Restore 0x1f and have a fault, probably Double Fault
> 
It could only be that the driver code changed the LDT descriptor and didn't
restore it upon return.

> I can't change that code. When I found this problem, I did simple hack,
> before call that code I'm clear GS. But I want to know may be exist
> a better solution?
> 
> -- 
> Vladimir Silyaev
> 

-lq


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to