- From: Edwin <duq97_at_mails.tsinghua.edu.cn>
- Date: Sun, 15 Dec 2002 21:01:28 +0800
Dear all:
I was trying to write a driver for DI interrupt service,
following structures as comedi_parport.c.
The problem is when I access to the s->async->data, system would
break down with a Oops message print out when the interrupt comes.
I wrote the interrupt service like this:
------------------------------------------------------------------------
---------
static void interrupt_service_pci1761(int irq, void *d, struct pt_regs
*regs)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 5;
*(sampl_t *)(s->async->data+s->async->buf_int_ptr)=0; // this would
cause kernel dump
s->async->buf_int_ptr+=sizeof(sampl_t);
s->async->buf_int_count+=sizeof(sampl_t);
if(s->async->buf_int_ptr>=s->async->data_len){
s->async->buf_int_ptr=0;
s->async->events |= COMEDI_CB_EOBUF;
}
s->async->events |= COMEDI_CB_EOS;
comedi_event(dev,s,s->async->events);
}
------------------------------------------------------------------------
---------
Here is the oops message:
------------------------------------------------------------------------
---------
Unable to handle kernel NULL pointer dereference at virtual address
00000000
printing eip:
c98a1568
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<c98a1568>]
EFLAGS: 00010202
eax: 00000000 ebx: c42f6400 ecx: c42f6610
edx: 00000000
esi: c42f0000 edi: 0000000b ebp: c0257fa8
esp: c0257f58
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, stackpage = c0257000)
Stack: 0000000b c4106e80 04000001 c010833a 0000000b
c42f6000 c0257fa8 c0257fa8
0000000b c028fa60 c41ebe80 c01083a8
0000000b c025fa8 c41ebe80 c0105390
c0256000 c0256000 c0105390 c020f180
c0105390 0000032 00000019 c0256000
Call Trace: [<c010822a>] [<c01083a8>] [<c0105390>]
[<c0105390>] [<c020f180>]
[<c0105390>] [<c0105390>] [<c01053b3>]
[<c0105432>] [<c0105000>]
Code: 66 c7 04 10 00 00 8b 93 30 02 00 00 8b 42 10 83 c0 02 89 42
<0> Kernel panic: Aiee, killing interrupt handler!
In interrupt handler -not syncing
------------------------------------------------------------------------
---------
System discription:
Redhat 7.2 _at_ 2.4.7
Received on 2002-12-15Z13:01:28