Andrew Morton wrote: > On Tue, 29 Aug 2006 14:15:55 -0700 > Sukadev Bhattiprolu <sukadev at us.ibm.com> wrote: > >> Replace kernel_thread() with kthread_run() since kernel_thread() >> is deprecated in drivers/modules. >> >> Note that this driver, like a few others, allows SIGTERM. Not >> sure if that is affected by conversion to kthread. Appreciate >> any comments on that. >> > > hm, I think this driver needs more help. > > - It shouldn't be using signals at all, really. Signals are for > userspace IPC. The kernel internally has better/richer/faster/tighter > ways of inter-thread communication. > > - saa7134_tvaudio_fini()-versus-tvaudio_sleep() looks racy: > > if (dev->thread.scan1 == dev->thread.scan2 && !dev->thread.shutdown) { > if (timeout < 0) { > set_current_state(TASK_INTERRUPTIBLE); > schedule(); > > If the wakeup happens after the test of dev->thread.shutdown, that sleep will > be permanent. > > > So in general, yes, the driver should be converted to the kthread API - > this is a requirement for virtualisation, but I forget why, and that's the > "standard" way of doing it. > > - The signal stuff should go away if at all possible. The thread of this driver allows SIGTERM for some obscure reason. Not sure why, I didn't find anything relying on it. could we just remove the allow_signal() ? C.