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

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: