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

Re: Svga & Linux



>>>>> "jowaters" == jowaters  <jowaters@NMSU.Edu> writes:

    jowaters> Oh, for the record ARDI folks, executor 1.2.7 doesn't
    jowaters> work on my machine either (I'm running a 2-meg VL-bus S3
    jowaters> 805 board, like others who have already posted bug
    jowaters> reports...  I guess it's a chipset problem right now...)

    jowaters> But the X version is amazing.  I'm totally impressed
    jowaters> with the work you folks have done so far.  If there's
    jowaters> anything I can do to help debug the svgalib version (my
    jowaters> screen goes black, but I still retain control of the
    jowaters> machine) I'd love to help...  I don't know how to get
    jowaters> any debug output from it right now though.

Here's a message from the linux-svgalib mailing list yesterday, from
one of the main svgalib maintainers.  It explains what we believe to
be the problem (cottons@ardi.com figured it out).  Basically,
`vga_safety_fork' (an svgalib routine Executor calls) is broken
because it throws away important I/O port permissions.  We should have
a workaround in the next BleedingEdge release.

Thanks for your patience.

-Mat

----------------------------------------------------------------------
From: Michael Weller <eowmob@exp-math.uni-essen.de>
Sender: vger.rutgers.edu!owner-linux-svgalib
Sender: owner-linux-svgalib@vger.rutgers.edu
To: linux-svgalib@vger.rutgers.edu
Subject: vga_safety_fork()
Date: Thu, 7 Sep 1995 17:36:28 +0200 (MSZ)

I was pointed to a problem with vga_safety_fork().
iopermissions are not inherited through forks which causes a segfault
when the ports are accessed. The segfault handler tries to restore textmode
which again segfaults when accessing the ports -> endless loop.

One could change get_vga_perm to get the required access permissions, but 
this doesn't help coz it does not care for the access permissions of all
card specific registers. Calling the cards initialization routines
a second time might not work well for all drivers. I don't see an easy fix
for this problem. A new card specific driver func might be needed to 
clone the permissions.

I'll investigate further, but if I don't find a simple solution I'll make
vga_safety_fork a noop until a working solution is found.

One could, however, just call iopl(3) in the forked off proc as we
really trust it (do we?).

Comments/Suggestions?
Michael.

(eowmob@exp-math.uni-essen.de or  eowmob@pollux.exp-math.uni-essen.de
Please do not use my vm or de0hrz1a accounts anymore. In case of real
problems reaching me try mat42b@aixrs1.hrz.uni-essen.de instead.)
----------------------------------------------------------------------


Follow-Ups: References: