> [EMAIL PROTECTED]
> >Just realized that some of those symbols were defined in the via82cxxx_audio
> >module and I needed to load it to get them recognized.  As long as I don't
> >play any sounds the module will load fine so here is the new and improved
> >ksymoops output

> >>>EIP; d883a0a0 <[via82cxxx_audio]via_intr_channel+90/120>   <=====
> >Trace; d883a15f <[via82cxxx_audio]via_interrupt+2f/70>
> >Trace; c010a2bf <handle_IRQ_event+2f/60>
> >Trace; c010a43e <do_IRQ+6e/b0>
> >Trace; c0108f80 <ret_from_intr+0/20>
> >Trace; c01f480a <acpi_idle+1ea/2b0>
> >Trace; c01f4620 <acpi_idle+0/2b0>
> >Trace; c0107130 <default_idle+0/30>
> >Trace; c01071c2 <cpu_idle+42/60>
> >Trace; c0105000 <empty_bad_page+0/1000>
> >Trace; c0100191 <L6+0/2>
> >Code;  d883a0a0 <[via82cxxx_audio]via_intr_channel+90/120>
> >00000000 <_EIP>:
> >Code;  d883a0a0 <[via82cxxx_audio]via_intr_channel+90/120>   <=====
> >   0:   89 44 f2 04               mov    %eax,0x4(%edx,%esi,8)   <=====

Ouch.  After applying the attached patch, do any of the assertions
trigger?  (You should get a message 'Assertion failed! ...' right before
the oops)

        Jeff


-- 
Jeff Garzik       | "You see, in this world there's two kinds of
Building 1024     |  people, my friend: Those with loaded guns
MandrakeSoft      |  and those who dig. You dig."  --Blondie
Index: drivers/sound/via82cxxx_audio.c
===================================================================
RCS file: /cvsroot/gkernel/linux_2_4/drivers/sound/via82cxxx_audio.c,v
retrieving revision 1.1.1.11.2.1
diff -u -r1.1.1.11.2.1 via82cxxx_audio.c
--- drivers/sound/via82cxxx_audio.c     2001/02/04 19:07:03     1.1.1.11.2.1
+++ drivers/sound/via82cxxx_audio.c     2001/02/05 18:24:48
@@ -1649,6 +1649,9 @@
        u8 status;
        int n;
 
+       assert (chan != NULL);
+       assert (chan->sgtable != NULL);
+
        /* check pertinent bits of status register for action bits */
        status = inb (chan->iobase) & (VIA_SGD_FLAG | VIA_SGD_EOL | VIA_SGD_STOPPED);
        if (!status)
@@ -1728,6 +1731,8 @@
 {
        struct via_info *card = dev_id;
        u32 status32;
+
+       assert (card != NULL);
 
        /* to minimize interrupt sharing costs, we use the SGD status
         * shadow register to check the status of all inputs and

Reply via email to