[ARM] ecard: convert to use the kthread API
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 26 Apr 2007 07:04:40 +0000 (00:04 -0700)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 May 2007 13:16:56 +0000 (14:16 +0100)
This patch modifies the startup of kecardd to use kthread_run not a
kernel_thread combination of kernel_thread and daemonize.  Making the code
slightly simpler and more maintainable.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/ecard.c

index 6eb80acea379fe2d8c132900d2250336f6c0e00c..869de6d3ad531ea3c0a725e6d34b5420fa3caff7 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/device.h>
 #include <linux/init.h>
 #include <linux/mutex.h>
+#include <linux/kthread.h>
 
 #include <asm/dma.h>
 #include <asm/ecard.h>
@@ -263,8 +264,6 @@ static int ecard_init_mm(void)
 static int
 ecard_task(void * unused)
 {
-       daemonize("kecardd");
-
        /*
         * Allocate a mm.  We're not a lazy-TLB kernel task since we need
         * to set page table entries where the user space would be.  Note
@@ -1059,13 +1058,14 @@ ecard_probe(int slot, card_type_t type)
  */
 static int __init ecard_init(void)
 {
-       int slot, irqhw, ret;
+       struct task_struct *task;
+       int slot, irqhw;
 
-       ret = kernel_thread(ecard_task, NULL, CLONE_KERNEL);
-       if (ret < 0) {
+       task = kthread_run(ecard_task, NULL, "kecardd");
+       if (IS_ERR(task)) {
                printk(KERN_ERR "Ecard: unable to create kernel thread: %d\n",
-                      ret);
-               return ret;
+                      PTR_ERR(task));
+               return PTR_ERR(task);
        }
 
        printk("Probing expansion cards\n");