'ati' driver segfaults X server at startup by trying to probe the ISA bus
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.
Attached is the output of "lspci -v" which shows that
the machine has only one (ATI) graphics card.