On Wed, 30 Aug 2006 18:30:27 +0200 Cedric Le Goater <clg at fr.ibm.com> wrote: > 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() ? > I hope so. However I have a bad feeling that the driver wants to accept signals from userspace. Hopefully Mauro & co will be able to clue us in.