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

Bug#422077: xserver-xorg: more information



jim wrote:
> I upgraded to kernel 2.6.20 and the kernel issues are fixed but xorg still
> wont start. Now i can attach some more information, hope it helps...

I was wondering what you were talking about and where the good strace
output was.
Actually your previous mail probably got caught by the spam filter
before being
delivering to debian-x. Fortunately, it reached the BTS, so I found it.

  open("/sys/bus/pci/devices/0000:00:00.0/config", O_RDWR) = 7
  ioctl(7, 0x50434900, 0) = -1 ENOTTY (Inappropriate ioctl for device)
  close(7) = 0
  open("/sys/bus/pci/devices/0000:00:13.0/config", O_RDWR) = 7
  ioctl(7, IIOCNETDIF, 0) = -1 ENOTTY (Inappropriate ioctl for device)
  write(2, "\nFatal server error:\n", 21) = 21
  write(2, "xf86MapPciMem: Could not mmap PC"..., 118) = 118

It's trying to open the root chipset and ATI board, looks ok:
  00:00.0 Host bridge: Sun Microsystems Computer Corp. Ultra IIe
  00:13.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)

The first ioctl above looks ok too (0x50434900 == PCIIOC_CONTROLLER).
xf86GetPciDomain() returns 0 at this point, harmless.

The second ioctl looks crap. IIOCNETDIF has nothing to do here. There's
not a lot
of ioctl in this code, all of them are hardwired, except
  ioctl(fd, mmap_ioctl, 0)
in linuxMapPci(..., int mmap_ioctl, ...).

>From the code, this mmap_ioctl is either
     0x50434901 == PCIIOC_MMAP_IS_IO
  or 0x50434902 == PCIIOC_MMAP_IS_MEM.
Here, IIOCNETDIF is apparently 0x20004902. So I would say that
PCIIOC_MMAP_IS_MEM
got passed from xf86MapDomainMemory() and somehow lost its 16bits first bits
because of type/cast problems.

The best would be to rebuild xorg-server from source after adding a
temporary variable
where PCIIOC_MMAP_IS_MEM would be stored before calling linuxMapPci().
And a printf() in
linuxMapPci() to display the value of mmap_ioctl. I'll understand if
this looks too hard
for you :)

Brice




Reply to: