Thread (3 messages) 3 messages, 2 authors, 2011-12-05

which context can't use queue_work() function?

From: onlyfever <hidden>
Date: 2011-12-05 15:28:35

2011/12/4  [off-list ref]:
Hi!

On 21:56 Sat 03 Dec ? ? , onlyfever wrote:
quoted
Hi,
? ? I have a question about work queue.
I use queue_work() function in my TTY driver's write function (ch_tty_write()).
The TTY driver works fine,but when this driver is called from
ppp_write() function system would crash.

static int ch_tty_write(struct tty_struct *tty,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? const unsigned char *buf, int count)
{
? ? ? ......
? ? ? queue_work(xxx,xxxx);
? ? ? return count;
}

I want to know ?which context can't use queue_work() function?
Put the crash message below.

Unable to handle kernel NULL pointer dereference at virtual address 00000003
Please check that you have properly called "INIT_WORK" and do pass any null
pointers to either INIT_WORK or queue_work. If this does not help, please
give us a pointer on where to get your kernel tree.

? ? ? ?-Michi
--
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com
I find the reason,the work queue has been destroyed before the work been called.

thanks.

Regards!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help