Bug 140076

Summary: Kudzu crashes detecting Cirrus Logic GD5446
Product: [Fedora] Fedora Reporter: Kim Lux <lux>
Component: kudzuAssignee: Bill Nottingham <notting>
Status: CLOSED CANTFIX QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 3CC: mattdm, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-10-31 04:36:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kim Lux 2004-11-19 16:53:25 UTC
Description of problem: 
 
Durring hardware detection at boot up, Kudzu gets a segmentation 
fault while configuring Cirrus Logic GD5446 video cards.  
 
Version-Release number of selected component (if applicable): 
 
rpm -q kudzu 
kudzu-1.1.95-1 
 
How reproducible: 
 
Every time a hard drive is booted in a machine with this card, it 
does this.  We've got half a dozen old machines with this card in it 
and they have been doing this since RH8.  I've just never reported 
it. 
 
Linux might keep these machines going for a long time.  I'd like to 
see this problem fixed if possible.    
 
 
 
Steps to Reproduce: 
 
1. Build a new Linux installation or install a hard drive from 
another machine into a computer with a Cirrus Logic GD5446 video 
card.  
 
2. Boot the hard drive.  In hardware detection (kudzu), answer 
"Configure" when the GD5446 request appears.  A segmentation fault 
occurs. (See below)  The computer hangs.   
 
3. If I reboot after this, the segmentation fault occurs again at the 
same place, with the same error, but the computer won't hang and I 
can eventually get to a command line.  I am then queried to try to 
troubleshoot X.  X eventually installs a driver for "Cirrus Logic 
GD544x", note the 544X, not 5446. 
 
I am then taken to the login screen, where I can proceed as normal. 
 
This happens on every machine with a GD5446 card in that we have ever 
used Linux on.   
   
Actual results: 
 
See above. 
 
Expected results: 
 
Should find the card correctly in the first place and avoid the 
double boot and X config stuff.  
 
Additional info: 
 
The segmentation fault goes like this: 
 
kudzu line 43: 1242 Segmentation Fault.  Or something like that. It 
is hard to get the info down because it happens in the middle of the 
kudzu screen.  
 
BTW: The video quality from the card is absolutely terrible.  I think 
that X is running it in some sort of compatibility mode.  I haven't 
checked what X.config has in it.

Comment 1 Bill Nottingham 2004-11-19 20:25:07 UTC
Can you get a strace or a gdb backtrace?

Comment 2 Kim Lux 2004-11-19 21:01:14 UTC
The seg fault happens during boot up and I don't get a command line
until 5 minutes later.  If you can tell me how to run gdb during boot
up , I'll try to get it.

We've got several of these cards hanging around.  Would you like me to
mail you one ?

Comment 3 Bill Nottingham 2004-11-19 21:39:05 UTC
Does it happen if you run it post-boot as well?

Comment 4 Kim Lux 2004-11-19 21:55:19 UTC
I have a thought... what if I edit /etc/hardware.conf, remove the
video card entry and then run kudzu from within gdb.  kudzu should
find the card and crash and we should get a bt.  I'll try it over the
weekend.  I don't have access to that machine right now. 

Comment 5 Kim Lux 2004-11-20 17:42:19 UTC
I ran kudzu in gdb.  I didn't build it from source, so I don't have 
any symbols, but I got this: 
 
Program received signal SIGSEGV, Segmentation fault.      
0x08061590 in ddcNewDevice () 
(gdb) bt 
#0  0x08061590 in ddcNewDevice () 
#1  0x080527a3 in isCfg () 
#2  0x00000001 in ?? () 
#3  0x00000000 in ?? () 
(gdb) 
 
Here is what hconf has in it after X gets things going, ie after 
kudzu crashes and X gets video working: 
 
class: VIDEO 
bus: PCI 
detached: 0 
driver: Card:Cirrus Logic GD544x 
desc: "Cirrus Logic GD 5446" 
vendorId: 1013 
deviceId: 00b8 
subVendorId: 0000 
subDeviceId: 0000 
pciType: 1 
pcidom:    0 
pcibus:  0 
pcidev:  b 
pcifn:  0 
 
 
Hope this helps.  Let me know if you need more.  

Comment 6 Bill Nottingham 2004-11-22 04:33:23 UTC
Hm, not sure that helps. Do you get something better if you install
the kudzu debuginfo package?

Comment 7 Kim Lux 2004-11-23 00:28:47 UTC
Here is what I got running kudzu in gdb with kudzu-debuginfo: 
 
Program received signal SIGSEGV, Segmentation fault.              â 
0x08061590 in ddcProbe (probeClass=CLASS_UNSPEC, probeFlags=1, 
devlist=0x0) at ddc.c:290 
290 strcmp(vbe_info->vendor_name.string,"Vendor Name")) { 
 
(gdb) bt 
#0  0x08061590 in ddcProbe (probeClass=CLASS_UNSPEC, probeFlags=1, 
devlist=0x0) at ddc.c:290 
#1  0x080527a3 in probeDevices (probeClass=CLASS_UNSPEC, 
probeBus=BUS_DDC, probeFlags=1) at kudzu.c:716 
#2  0x0804acc3 in Xconfig (dev=0x94381d8) at hwconf.c:124 
#3  0x0804d6b5 in configure (dev=0x94381d8) at hwconf.c:934 
#4  0x0804f950 in configMenu (oldDevs=0x0, newDevs=0x9470198, 
runFirst=0) at hwconf.c:1777 
#5  0x08050130 in main (argc=17105153, argv=0x1050101) at 
hwconf.c:1984ancel 
#6  0x00853e33 in __libc_start_main () from /lib/tls/libc.so.6 
#7  0x0804aa51 in _start () 
(gdb)                              
 

Comment 8 Bill Nottingham 2004-11-23 04:29:12 UTC
Is vbe_info->vendor_name.string NULL, or garbage?

Comment 9 Kim Lux 2004-11-24 00:47:35 UTC
Program received signal SIGSEGV, Segmentation fault.                 
                 â
0x08061590 in ddcProbe (probeClass=CLASS_UNSPEC, probeFlags=1,
devlist=0x0) at ddc.c:290
290                                        
strcmp(vbe_info->vendor_name.string,"Vendor Name")) {
(gdb) bt
#0  0x08061590 in ddcProbe (probeClass=CLASS_UNSPEC, probeFlags=1,
devlist=0x0) at ddc.c:290
#1  0x080527a3 in probeDevices (probeClass=CLASS_UNSPEC,
probeBus=BUS_DDC, probeFlags=1) at kudzu.c:716
#2  0x0804acc3 in Xconfig (dev=0x962c1d8) at hwconf.c:124
#3  0x0804d6b5 in configure (dev=0x962c1d8) at hwconf.c:934
#4  0x0804f950 in configMenu (oldDevs=0x0, newDevs=0x9664198,
runFirst=0) at hwconf.c:1777
#5  0x08050130 in main (argc=17105153, argv=0x1050101) at hwconf.c:1984
#6  0x00853e33 in __libc_start_main () from /lib/tls/libc.so.6
#7  0x0804aa51 in _start ()

(gdb) print vbe_info->vendor_name.string
$1 = 0x1000104 <Address 0x1000104 out of bounds>


(gdb) print vbe_info->vendor_name.string
$1 = 0x1000104 <Address 0x1000104 out of bounds>
(gdb)  print vbe_info->vendor_name
$2 = {addr = {ofs = 260, seg = 256}, string = 0x1000104 <Address
0x1000104 out of bounds>}
(gdb) print vbe_info
$3 = (struct vbe_info *) 0x95cb950


Comment 10 Bill Nottingham 2004-11-24 02:08:23 UTC
Ok, the code is actually:

 if (vbe_info->product_name.string && vbe_info->vendor_name.string &&
              strcmp(vbe_info->vendor_name.string,"Vendor Name")) {

This is directly filled in from the VBE stuff. Odd, looks like it's
returning garbage.

Comment 11 Kim Lux 2004-11-25 14:54:14 UTC
This problem happens on multiple computers with this card, so I doubt
we are looking at a faulty card.  Does it have anything to do with the
fact that kudzu is finding device GD5446 (and crashing) yet X runs
fine when it sets up GD544x ?  ie should kudzu have found device
GD544x instead of GC5446 ?

Comment 12 Bill Nottingham 2004-11-28 20:14:20 UTC
No.

Comment 13 Matthew Miller 2006-07-10 20:18:58 UTC
Fedora Core 3 is now maintained by the Fedora Legacy project for security
updates only. If this problem is a security issue, please reopen and
reassign to the Fedora Legacy product. If it is not a security issue and
hasn't been resolved in the current FC5 updates or in the FC6 test
release, reopen and change the version to match.

Thank you!


Comment 14 John Thacker 2006-10-31 04:36:25 UTC
Closing per lack of response to previous request for information.
This bug was originally filed against a much earlier version of Fedora
Core, and significant changes have taken place since the last version
for which this bug is confirmed.

Note that FC3 and FC4 are supported by Fedora Legacy for security
fixes only.  Please install a still supported version and retest.  If
it still occurs on FC5 or FC6, please reopen and assign to the correct
version.  Otherwise, if this a security issue, please change the
product to Fedora Legacy.  Thanks, and we are sorry that we did not
get to this bug earlier.

Comment 15 Kim Lux 2006-10-31 16:53:18 UTC
Nothing to be sorry about.  We abandoned using that hardware.  Should that PC
ever come out of storage and be used, we'll resubmit the bug.