Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2012-06-27 Thread Bjarni Ingi Gislason
  This bug report can be closed, as there is no sign of it in the
Debian Squeeze version (6.0.5).

-- 
Bjarni I. Gislason



-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20120627204031.ga20...@rhi.hi.is



Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2011-05-11 Thread Bjarni Ingi Gislason
On Sun, May 08, 2011 at 10:26:00AM +0200, Julien Cristau wrote:
> On Sun, May  8, 2011 at 01:25:01 +, Bjarni Ingi Gislason wrote:
> 
> >   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.
> > 
> That should never happen.  ScreenInit is called at the start of a
> session, and CloseScreen should be called before the next ScreenInit.
> That's not a client bug.
> 

  You are probably right.  I have made some more tests in the
trident driver code.  Unmapping is only done in "CloseScreen",
if "vtSema" is true.  If I switch terminals after issuing a
single "X &" command to issue "iceweasel", then "vtSema" is false
in the next "CloseScreen".  "iceweasel" switches automatically to
the X display, but "xpdf" does not do it.

  If I transfer the "TRIDENTUnmapMem(pScrn)" subroutine outside the
"if (pScrn->vtSema)" block, then the missing unmapping occurs.

  A comment in the code before "CloseScreen" is:

"It should really also unmap the video memory too."

  The conditions to trigger the error (using "libpciaccess") are

1) change from the X display (pure server, e.g. "X -retro &") to
a text terminal

2) issue a X client (in the background) that automatically switches
to the X display.

  Other video drivers should be tested in this way.

-- 
Bjarni I. Gislason



--
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110511185039.ga24...@rhi.hi.is



Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2011-05-08 Thread Julien Cristau
On Sun, May  8, 2011 at 01:25:01 +, Bjarni Ingi Gislason wrote:

>   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.
> 
That should never happen.  ScreenInit is called at the start of a
session, and CloseScreen should be called before the next ScreenInit.
That's not a client bug.

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110508082600.gq2...@radis.liafa.jussieu.fr



Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2011-05-07 Thread Bjarni Ingi Gislason
On Fri, Apr 29, 2011 at 09:35:38PM +0200, Julien Cristau wrote:
> On Fri, Apr 29, 2011 at 18:15:11 +, Bjarni Ingi Gislason wrote:
> 
> > On Thu, Apr 28, 2011 at 06:03:07PM +, Bjarni Ingi Gislason wrote:
> > > On Fri, Apr 15, 2011 at 07:50:03PM +, Bjarni Ingi Gislason wrote:
> > > > On Tue, Apr 12, 2011 at 07:25:21PM +, 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 =
> > > 0xfe7f, and size = 0x1
> > > 
> > > [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



--
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110508012501.ga7...@rhi.hi.is



Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2011-04-29 Thread Julien Cristau
On Fri, Apr 29, 2011 at 18:15:11 +, Bjarni Ingi Gislason wrote:

> On Thu, Apr 28, 2011 at 06:03:07PM +, Bjarni Ingi Gislason wrote:
> > On Fri, Apr 15, 2011 at 07:50:03PM +, Bjarni Ingi Gislason wrote:
> > > On Tue, Apr 12, 2011 at 07:25:21PM +, 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 =
> > 0xfe7f, and size = 0x1
> > 
> > [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...

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110429193538.gb2...@radis.liafa.jussieu.fr



Bug#622401: xserver-xorg-video-trident: Error message and exit with iceape and iceweasel. One solution.

2011-04-29 Thread Bjarni Ingi Gislason
On Thu, Apr 28, 2011 at 06:03:07PM +, Bjarni Ingi Gislason wrote:
> On Fri, Apr 15, 2011 at 07:50:03PM +, Bjarni Ingi Gislason wrote:
> > On Tue, Apr 12, 2011 at 07:25:21PM +, 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 =
> 0xfe7f, and size = 0x1
> 
> [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.

  Some output from an inserted "fprintf" statement before the
(removed) "return EINVAL;".

  The list is cumulative (fopen(..., "a")).

Each output line starts with "libpciaccess: common_interface.c: Already mapped 
is "

"devp->mappings[0]" with devp->num_mappings = 4, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 4, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 5, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 5, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 4, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 4, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 5, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 5, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[4]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[5]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[4]" with devp->num_mappings = 6, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[5]" with devp->num_mappings = 7, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[4]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[6]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[5]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[7]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[4]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[6]" with devp->num_mappings = 8, base = 0xfe7f, and size = 
0x1
"devp->mappings[1]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[3]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[5]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[7]" with devp->num_mappings = 9, base = 0xfdc0, and size = 
0x20
"devp->mappings[0]" with devp->num_mappings = 10, base = 0xfe7f, and size = 
0x1
"devp->mappings[2]" with devp->num_mappings = 10, base = 0xfe7f, and size = 
0x1
"devp->mappings[4]" with devp->num_mappings = 10, base = 0xfe7f, and size = 
0x1
"devp->mappings[6]" with devp->num_mappings = 10, base = 0xfe7f, and size = 
0x1
"devp->mappings[8]" with devp->num_m