This allows to compile driver on latest 2.6.27+ kernels,
but is incorrect anyway. The local code for kernel thread
support is not more needed for recent 2.6 kernels and code
should be modified to emulate same interface for older ones.
the flags are visible on all CPUs.
*/
mb();
the flags are visible on all CPUs.
*/
mb();
+#warning The local code for kernel thread support is not more needed for recent 2.6 kernels
+#warning and code should be modified to emulate same interface for older kernels
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
kill_proc(kthread->thread->pid, SIGKILL, 1);
kill_proc(kthread->thread->pid, SIGKILL, 1);
+#else /* >= 2,6,20 */
+ send_sig(SIGKILL, kthread->thread, 1);
+#endif /* >= 2,6,20 */
/* block till thread terminated */
down(&kthread->startstop_sem);
/* block till thread terminated */
down(&kthread->startstop_sem);
/* now we are sure the thread is in zombie state. We
notify keventd to clean the process up.
*/
/* now we are sure the thread is in zombie state. We
notify keventd to clean the process up.
*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
kill_proc(2, SIGCHLD, 1);
kill_proc(2, SIGCHLD, 1);