Cameron Grant wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> > I did that and it still hangs.  Let me see if it's for the same reason.
> > Maybe *sc is getting stepped on somehow?
> very odd.  i have no idea what is going on.
> i have committed bits, so try again in a few hours.

Okay, I've rebuilt the kernel and rerun the test, again doing remote 
debugging.  As I thought, the zeroed *sc was a quirk of that debugging
session.  The same hang is happening to me as is happening to the other
guy with a hang at 0x600 (sorry, I forgot his name and didn't retain the
email).

Here's the backtrace:

#0  nm_rd (sc=0xc0d83100, regno=1536, size=2)
    at ../../dev/sound/pci/neomagic.c:142
#1  0xc0207267 in nm_rdcd (devinfo=0xc0d83100, regno=0)
    at ../../dev/sound/pci/neomagic.c:232
#2  0xc020293e in ac97_init (codec=0xc0d83000)
    at ../../dev/sound/pcm/ac97.c:251
#3  0xc0202b16 in ac97mix_init (m=0xc073d30c) at ../../dev/sound/pcm/ac97.c:304
#4  0xc0205854 in mixer_init (d=0xc073d200, m=0xc0288c40, devinfo=0xc0d83000)
    at ../../dev/sound/pcm/mixer.c:53
#5  0xc0207b4b in nm_pci_attach (dev=0xc0d87280)
    at ../../dev/sound/pci/neomagic.c:595
#6  0xc011e1be in DEVICE_ATTACH (dev=0xc0d87280) at device_if.c:63
#7  0xc0148b87 in device_probe_and_attach (dev=0xc0d87280)
    at ../../kern/subr_bus.c:1137
#8  0xc0149876 in bus_generic_attach (dev=0xc0d87480)
    at ../../kern/subr_bus.c:1831
#9  0xc011e1be in DEVICE_ATTACH (dev=0xc0d87480) at device_if.c:63
#10 0xc0148b87 in device_probe_and_attach (dev=0xc0d87480)
    at ../../kern/subr_bus.c:1137
#11 0xc0149876 in bus_generic_attach (dev=0xc0d87b80)
    at ../../kern/subr_bus.c:1831
#12 0xc01cd235 in pcib_attach (dev=0xc0d87b80) at ../../pci/pcisupport.c:747
#13 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87b80) at device_if.c:63
#14 0xc0148b87 in device_probe_and_attach (dev=0xc0d87b80)
    at ../../kern/subr_bus.c:1137
#15 0xc0149876 in bus_generic_attach (dev=0xc0d87d80)
    at ../../kern/subr_bus.c:1831
#16 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87d80) at device_if.c:63
#17 0xc0148b87 in device_probe_and_attach (dev=0xc0d87d80)
    at ../../kern/subr_bus.c:1137
#18 0xc0149876 in bus_generic_attach (dev=0xc0d86000)
    at ../../kern/subr_bus.c:1831
#19 0xc011e1be in DEVICE_ATTACH (dev=0xc0d86000) at device_if.c:63
#20 0xc0148b87 in device_probe_and_attach (dev=0xc0d86000)
    at ../../kern/subr_bus.c:1137
#21 0xc0149876 in bus_generic_attach (dev=0xc0d86080)
    at ../../kern/subr_bus.c:1831
#22 0xc0231579 in nexus_attach (dev=0xc0d86080) at ../../i386/i386/nexus.c:199
#23 0xc011e1be in DEVICE_ATTACH (dev=0xc0d86080) at device_if.c:63
#24 0xc0148b87 in device_probe_and_attach (dev=0xc0d86080)
    at ../../kern/subr_bus.c:1137
#25 0xc0149db6 in root_bus_configure () at ../../kern/subr_bus.c:2214
#26 0xc0227e58 in configure (dummy=0x0) at ../../i386/i386/autoconf.c:146
#27 0xc0133118 in mi_startup (framep=0xc0326fb4) at ../../kern/init_main.c:217
(kgdb) print /x regno
$1 = 0x600

The hang is happening on the "movzwl (%ebx,%eax,1),%eax" at nm_rd+80:

(kgdb) s
146                     return bus_space_read_2(st, sh, regno);
(kgdb) print $eip
$2 = (void *) 0xc0207054
(kgdb) stepi
0xc0207056      146                     return bus_space_read_2(st, sh, regno);
(kgdb) stepi
198     #if defined(_I386_BUS_MEMIO_H_)
(kgdb) print $eip
$3 = (void *) 0xc0207060

That's this instruction:
0xc0207060 <nm_rd+80>:  movzwl (%ebx,%eax,1),%eax

(kgdb) print /x $ebx
$5 = 0x600
(kgdb) print /x $eax
$6 = 0xc87d2000

$eax being 0xc87d2000 seems a little odd, but I don't remember my 80x86
assembly well enough to say whether it's right or wrong.

In the meantime, I'll try Nick Sayer's trick.
-- 
Frank Mayhar [EMAIL PROTECTED]



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to