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 00000003Please 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!