Re: XFree86 4.3.0.2 server not exiting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

first, sorry for the delay. I had a short vacation over easter.
[del]
> > (gdb) info all-registers
> > eax            0xff     255
> > ecx            0x3d5    981
> > edx            0x3d5    981
> > ebx            0x3d5    981
> > [snip]
> 
> > The loop starts at 0x401a9759 and goes to 0x401a975e. If I jump to
> > 0x401a9760 in the debugger, the server terminates. So, it reads 0x3d5,
> > whatever that is (probably I/O stuff) and the test never succeeds.
> 
> Looks like it's looping in function gfx_vga_mode_switch() near the tail end of
> xc/programs/Xserver/hw/xfree86/drivers/ncs/gfx/vga_gu1.c, part of which reads
> 
>    /* WAIT UNTIL SOFTVGA HAS VALIDATED MODE IF ENDING MODE SWITCH */
>    /* This is for VSA1 only, where SoftVGA waits until the next */
>    /* vertical blank to validate the hardware state. */
> 
>    if ((!active) && (!(gu1_detect_vsa2()))) {
>       OUTB(crtcindex, 0x33);
>       while (INB(crtcdata) & 0x80) ;
>    }
> 
> Change this to ...
> 
>    /* WAIT UNTIL SOFTVGA HAS VALIDATED MODE IF ENDING MODE SWITCH */
>    /* This is for VSA1 only, where SoftVGA waits until the next */
>    /* vertical blank to validate the hardware state. */
> 
>    if ((!active) && (!(gu1_detect_vsa2()))) {
>       int cnt = 256;
> 
>       OUTB(crtcindex, 0x33);
>       while (--cnt && (INB(crtcdata) & 0x80));
>    }
> 
> ... and see what happens.

Great! Now, it terminates correctly,

Thanks a million,
Uli
-- 
Ulrich Teichert, IDF EUROPE, Obenhauptstrasse 11, 22335 Hamburg, Germany
fon: +49 40 59 39 39 0, fax: +49 40 59 39 39 11
_______________________________________________
XFree86 mailing list
XFree86@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/xfree86

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux