lkml.org 
[lkml]   [2001]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.4.{1,2pre1} oops in via82cxxx_audio (?)
> mharrell@bittwiddlers.com
> >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." --BlondieIndex: 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
\
 
 \ /
  Last update: 2005-03-22 12:56    [W:0.039 / U:0.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site