[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: