'ati' driver segfaults X server at startup by trying to probe the ISA bus

Bug #37519 reported by Eero Tamminen
12
Affects Status Importance Assigned to Milestone
xserver-xorg-driver-ati (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Version:
- Ubuntu Breezy upgraded to latest packages at 2006-03-30
- ATI driver / X server version: 6.8.2-77
- HW: P166 with 96MB of RAM and ATI 3D Rage II+.
  See the lspci output

Test-case:
- Start X server as root (or as user) with "X"

Result:
- Screen goes blank and remains blank until reboot

If I run X server through ssh, the problem is that X server
SIGSEGVs.

After installing debug packages and running X under GDB,
I found out that X server crashes when it probes the ISA bus.
After getting the backtrace and reading the code I found out
that:
- ATI drivers thinks the machine has two ATI cards
  (see the backtrace), although it doesn't (see lspci output)
- For the "other card" it calls ATIClaimBusSlot() at the end
  of the ATI probe function. Because the driver PCIInfo
  structs is not set, xf86ClaimIsaSlot() probe function is
 called and X server crashes.

If in GDB I set breakpoint for ATIClaimBusSlot() and return
immediately from that, the X server starts just nicely and
I get >70Hz refresh rate instead of the unusable (headache
in 5 mins) 60Hz which I get with the "vesa" driver. "vesa"
driver works just fine.

Notes:
- Before Ubuntu I tried FreeBSD and its X server crashed
  very similarly

Btw. How I can compile just the "ati" driver?
I don't have enough disk space to compile the whole
X server, at least not if "dpkg-buildpackage" is going
to build everything with debug symbols.

Revision history for this message
Eero Tamminen (oak-helsinkinet) wrote : output of: lspci -v

Attached is the output of "lspci -v" which shows that
the machine has only one (ATI) graphics card.

Revision history for this message
Eero Tamminen (oak-helsinkinet) wrote : gdb backtrace of the X server crash

Attached is the result of running the X server under GDB and
after the crash doing the following operations:
--------
bt
up
info locals
up
info locals
up
info locals
---------

You can see that the ATI probe function thinks the PC
has two graphics devices (the code is too cryptic for
me to understand where/how it gets this "information").

Revision history for this message
Fabio Massimo Di Nitto (fabbione) wrote :

Do you really mean breezy? or dapper?

Fabio

Changed in xserver-xorg-driver-ati:
status: Unconfirmed → Needs Info
Revision history for this message
Eero Tamminen (oak-helsinkinet) wrote :

Breezy.

I didn't have a Dapper installation CD, and it's a bit too large to download for testing purposes.

Btw. A Dapper "server" install CD download would be nice. Because the machine is only P166, I'm not installing Ubuntu desktop there, just icewm and some non-gnome Gtk apps from Universe on top of the server configuration.

Next I'm going to try compile X.org v7 from freedesktop.org sources (on another machine with more disk) and see if it works any better (as I don't know how to compile just the driver part from the Ubuntu Breezy X package). If that doesn't work or there's not a working 'ati' driver, I'll probably switch to SUSE which I'm running on the other machines. I could try dist-upgrading to Dapper if I would know that this problem has been fixed there...

Revision history for this message
Fabio Massimo Di Nitto (fabbione) wrote :

Given that you have a small set of pkgs installed, you could just dist upgrade it and test Xorg 7 from dapper. There is no need to reinstall or download the entire CD. Also note that our ati driver does not come from Xorg 7 but from a bug fix branch in CVS, that would make your test pointless.

Fabio

Revision history for this message
Eero Tamminen (oak-helsinkinet) wrote :

> Given that you have a small set of pkgs installed, you could > just dist upgrade it and test Xorg 7 from dapper. There is no > need to reinstall or download the entire CD.

The amount of packages is not that small, just the number of packages I got from main (most of the packages are from Universe). Anyway, I upgraded just the X server and ATI
driver from Dapper and now X server doesn't anymore
segfault with with the ATI driver. It works otherwise nicely
now too.

I.e. this bug is Breezy specific.

> Also note that our ati driver does not come from Xorg 7 but > from a bug fix branch in CVS, that would make your test
> pointless.

Thanks! I didn't especially cherish the thought of building
X server, I did enough of that for kdrive a few years ago...

Revision history for this message
Carthik Sharma (carthik) wrote :

Reporter comments that the bug is fixed in Dapper, and this is a Breezy-specific bug. Closing this using the magical "We fix only Dapper bugs" wand for now. :) If this issue occurs on Dapper, please reopen this bug.

Changed in xserver-xorg-driver-ati:
status: Needs Info → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.