Subject: Re: Problem faced while using workqueue in the character driver.

From: David Hawkins <[email-masked]>
Date: Fri, 20 Jul 2007 10:18:35 -0700

Hi Misbah,

> I am working on a character driver for FPGA, in which i am using a blocked
> read call on workqueue. The read call will be unblocked by the Interrupt
> from the Fpga to PPC Cpu.
> 
> The problem is that if the process is in blocked mode and then an Interrupt
> occurs the system gives kernel Panic where as it get unblocked and start
> reading the data but very soon it gets crashed.
> 
> Please send me your suggessins regarding the mentioned problem.

Er, without seeing the code, its a bit difficult to suggest
anything.

Perhaps you are using work-queues incorrectly?

Take a look at:

simple_work_queue.c

In the tar-ball

http://www.ovro.caltech.edu/~dwh/correlator/software/driver_design.tar.gz

Which is described in:

http://www.ovro.caltech.edu/~dwh/correlator/pdf/LNX-723-Hawkins.pdf

There's also a more complex 'COBRA driver' here:

http://www.ovro.caltech.edu/~dwh/correlator/cobra_docs.html

Having an example of a working driver that uses work-queues
might help you.

Dave