2.0.18 locks up during sound init

Duncan Roe (DUNC@cbrdm2.cv.com)
Mon, 09 Sep 1996 19:39:52 +1000


(have been away a while - hope this isn't a FAQ :)

Hi,

Can anyone help with this? I would be happy to try out any patches or supply
other requested info, if you would give me directions how to get it. I don't yet
know enough about kernel internels to do much more myself...

I tried installing 2.0.18 but the system locked solid after the boot message:

"Sound initialization started"

I had to press the reset button and boot 1.2.13 :(

There are 2 non-default settings for my SB16: the IRQ is 10 and the MPU401 port
is 0x300. By inserting printk's, I located the line at which the hang occurs, as
follows:-

--- Begin trace

drivers/sound/dev_table.c:99 (start_cards)
calls sound_drivers[drv].attach (attach_sb_card),
after printing the "Sound initialization started" message

drivers/sound/sb_card.c:27 (attach_sb_card)
calls sb_dsp_init

drivers/sound/sb_common.c:680 (sb_dsp_init)
calls snd_set_irq_handler

drivers/sound/soundcard.c:503 (snd_set_irq_handler)
HANGS on (macro) call to restore_flags.
request_irq has been "successfully" called for the configured IRQ (10)

The failing routine:-

486 int
487 snd_set_irq_handler (int interrupt_level, void (*iproc) (int, void *, struct pt_regs *), char *name, int *osp)
488 {
489 int retcode;
490 unsigned long flags;
491
492 save_flags (flags);
493 cli ();
494
495 retcode = request_irq (interrupt_level, iproc, 0 /* SA_INTERRUPT */ , name, NULL);
496 if (retcode < 0)
497 {
498 printk ("Sound: IRQ%d already in use\n", interrupt_level);
499 }
500 else
501 irqs |= (1ul << interrupt_level);
502
503 restore_flags (flags);
504 return retcode;
505 }

--- End trace

The previous kernel I had handy was 2.0.0 - this initialises OK. As a test, I
did a "cat english.au>/dev/audio" : worked fine except a bit loud perhaps (but I
think I saw mail about that earlier).

Today I have tried building a number of intermediate kernel revisions, with the
following results:-

2.0.9 - hangs same as 2.0.18

2.0.4 - didn't compile. Added missing semicolon to
drivers/sound/sb_common.c:1176, now it would build but panicked during sound
initialisation: "Unable to dereference NULL pointer"

2.0.2 - panics same as 2.0.4

2.0.6 - hangs same as 2.0.9, 2.0.18

2.0.1 - panics same as 2.0.4, 2.0.2

It looks to me as if something was broken at 2.0.1, and "partly fixed" at 2.0.6
or 2.0.5 (will try that last one tomorrow). But what?

Any ideas, anyone?

Cheers ... Duncan.

P.S. In case it is any help, here is the bootup o/p from 2.0.0:-

Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
Calibrating delay loop.. ok - 33.18 BogoMIPS
Memory: 30952k/32896k available (784k kernel code, 384k reserved, 776k data)
This processor honours the WP bit even when in supervisor mode. Good.
Swansea University Computer Society NET3.035 for Linux 2.0
NET3: Unix domain sockets 0.12 for Linux NET3.035.
Swansea University Computer Society TCP/IP for NET3.034
IP Protocols: ICMP, UDP, TCP
Swansea University Computer Society IPX 0.34 for NET3.035
IPX Portions Copyright (c) 1995 Caldera, Inc.
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Linux version 2.0.0 (dunc@dimstar) (gcc version 2.7.2.f.1) #2 Tue Jul 16 16:56:43 EST 1996
Serial driver version 4.13 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
tty03 at 0x02e8 (irq = 3) is a 16550A
lp1 at 0x0378, (polling)
Sound initialization started
<SoundBlaster 16 4.11> at 0x220 irq 10 dma 1,5
<SoundBlaster 16 4.11> at 0x220 irq 10 dma 1,5
<SoundBlaster MPU-401> at 0x300 irq 10 dma 0
Sound initialization complete
Floppy drive(s): fd0 is 1.2M, fd1 is 1.44M
Started kswapd v 1.4.2.2
FDC 0 is an 8272A
scsi: ***** BusLogic SCSI Driver Version 2.0.4 of 5 June 1996 *****
scsi: Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>
scsi0: Configuring BusLogic Model BT-445S VESA SCSI Host Adapter
scsi0: Firmware Version: 3.35, I/O Address: 0x330, IRQ Channel: 11/Edge
scsi0: DMA Channel: None, BIOS Address: 0xDC000, Host Adapter SCSI ID: 7
scsi0: Scatter/Gather Limit: 128 of 8192 segments, Parity Checking: Enabled
scsi0: Synchronous Initiation: Disabled, Extended Disk Translation: Disabled
scsi0: Disconnect/Reconnect: Enabled, Tagged Queuing: Enabled
scsi0: Total Queue Depth: 30, Mailboxes: 255, Initial CCBs: 64
scsi0: Tagged Queue Depth: 2, Untagged Queue Depth: 2
scsi0: Error Recovery Strategy: Default
scsi0: *** BusLogic BT-445S Initialized Successfully ***
scsi0: Target 0: Asynchronous
scsi0: Target 1: Asynchronous
scsi0: Target 6: Asynchronous
scsi0 : BusLogic BT-445S
scsi : 1 host.
Vendor: SEAGATE Model: ST3550N Rev: 9416
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
Vendor: SEAGATE Model: ST12400N Rev: 8650
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0
Vendor: SONY Model: CD-ROM CDU-561 Rev: 1.9i
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 6, lun 0
scsi : detected 1 SCSI cdrom 2 SCSI disks total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 891574 [435 MB] [0.4 GB]
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 4194685 [2048 MB] [2.0 GB]
PPP: version 2.2.0 (dynamic channel allocation)
TCP compression code copyright 1989 Regents of the University of California
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).
ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
NE*000 ethercard probe at 0x340: 00 00 1b 40 b7 0e
eth0: NE1000 found at 0x340, using IRQ 5.
Partition check:
sda: sda1 sda2 sda3 sda4
sdb: sdb1 < sdb5 sdb6 sdb7 sdb8 > sdb2
VFS: Mounted root (ext2 filesystem) readonly.
scsi0: Tagged Queuing now active for Target 1
Adding Swap: 49148k swap-space
Max size:331279 Log zone size:2048
First datazone:68 Root inode number 139264
ISO9660 Extensions: RRIP_1991A