Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.
On Fri, Apr 29, 2011 at 09:35:38PM +0200, Julien Cristau wrote:
> On Fri, Apr 29, 2011 at 18:15:11 +0000, Bjarni Ingi Gislason wrote:
>
> > On Thu, Apr 28, 2011 at 06:03:07PM +0000, Bjarni Ingi Gislason wrote:
> > > On Fri, Apr 15, 2011 at 07:50:03PM +0000, Bjarni Ingi Gislason wrote:
> > > > On Tue, Apr 12, 2011 at 07:25:21PM +0000, Bjarni Ingi Gislason wrote:
> > > > > Package: xserver-xorg-video-trident
> > > > > Version: 1:1.3.4-2
> > > > > Severity: important
> > > > >
> > > > > *** Please type your report below this line ***
> > > > >
> > > > > If "iceweasel" or "iceape" are used, there is an error message
> > > > > and exit.
> > > > >
> > > > > (EE) TRIDENT(0): Unable to map IO aperture. Invalid argument (22)
> > > > > Fatal server error:
> > > > > AddScreen/ScreenInit failed for driver 0
> > > > > ...
> > > > > Error: cannot open display: :0
> > > > >
> > >
> > > Some data related to the PCI bus.
> > >
> >
> > There is a name error in "devp->num_mappings[0]"; it should be
> > "devp->mappings[0]".
> >
> > > This causes error 22 (EINVAL), that trident reports:
> > >
> > > libpciaccess: common_interface.c: Already mapped is
> > > "devp->num_mappings[0]" with devp->num_mappings = 2, base =
> > > 0xfe7f0000, and size = 0x10000
> > >
> > > [Rest is removed]
> >
> > (The commands that I use are "X &" and "iceweasel &" on a text
> > terminal.)
> >
> > I have to eliminate the "return EINVAL;" statement to get the
> > browser to function.
> >
> Sounds like a pci_device_unmap_range is missing from the CloseScreen
> path. If you can figure that out from the driver that would be nice.
>
> In theory, as far as I can tell:
> - the IO bar is mapped in TRIDENTPreInit, then unmapped before
> TRIDENTPreInit returns
> - it's mapped again in each server generation's TRIDENTScreenInit, and
> unmapped in TRIDENTCloseScreen
> I'm not seeing the error by quick inspection, but I may be missing
> something obvious...
>
The "X" server issues "PreInit" that maps and unmaps. Then it
issues "ScreenInit" which maps.
"iceweasel" causes a second map though "ScreenInit", which
leads to error.
If I use "xinit /usr/bin/iceweasel", then there is no second
"ScreenInit" (only "PreInit" and "ScreenInit").
If I use "X &; iceweasel &", then there is no error, because
of "PreInit", "ScreenInit", "CloseScreen" and "ScreenInit". I
usually issue "X -retro" (to see the mouse cursor) and wait for
the server to come up before I issue another X program.
The fault lies in the second "ScreenInit". The fault lies
thus with "iceweasel", "iceape", and any other client that
causes a "ScreenInit" (without "CloseScreen") if used directly
with an "X" server
This bug report can be closed. I will issue a report against
"iceweasel" and "iceape" as I find, that clients should work
directly with the X sever, without complicating matters with
"xinit" or other similar programmes.
"xpdf" and "gv" cause no second "ScreenInit".
--
Bjarni I. Gislason
Reply to: