From: Sukadev Bhattiprolu Date: Fri, 29 Sep 2006 08:59:31 +0000 (-0700) Subject: [PATCH] kthread: drivers/base/firmware_class.c X-Git-Tag: v2.6.19-rc1~802 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=563d075702454f6fa745ff8b0db605c73478078e;p=linux-2.6 [PATCH] kthread: drivers/base/firmware_class.c Replace kernel_thread() call in drivers/base/firmware_class.c with kthread_create() since kernel_thread() is deprecated in drivers. Signed-off-by: Sukadev Bhattiprolu Cc: Cedric Le Goater Cc: Serge E. Hallyn Cc: Dave Hansen Cc: Manuel Estrada Sainz Acked-by: Marcel Holtmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 77bf8826e2..14615694ae 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include "base.h" @@ -511,7 +512,6 @@ request_firmware_work_func(void *arg) WARN_ON(1); return 0; } - daemonize("%s/%s", "firmware", fw_work->name); ret = _request_firmware(&fw, fw_work->name, fw_work->device, fw_work->uevent); if (ret < 0) @@ -546,9 +546,9 @@ request_firmware_nowait( const char *name, struct device *device, void *context, void (*cont)(const struct firmware *fw, void *context)) { + struct task_struct *task; struct firmware_work *fw_work = kmalloc(sizeof (struct firmware_work), GFP_ATOMIC); - int ret; if (!fw_work) return -ENOMEM; @@ -566,14 +566,14 @@ request_firmware_nowait( .uevent = uevent, }; - ret = kernel_thread(request_firmware_work_func, fw_work, - CLONE_FS | CLONE_FILES); + task = kthread_run(request_firmware_work_func, fw_work, + "firmware/%s", name); - if (ret < 0) { + if (IS_ERR(task)) { fw_work->cont(NULL, fw_work->context); module_put(fw_work->module); kfree(fw_work); - return ret; + return PTR_ERR(task); } return 0; }