aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/macintosh/therm_pm72.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2007-12-12 23:54:45 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-18 23:22:02 -0500
commit39d183d87791cdfd9d430df299396c0fc688ea7a (patch)
tree9eadfea154d77246861a020509a46fa821fb2f75 /drivers/macintosh/therm_pm72.c
parentc61dace9a10a4bc54c764f9f490994a9d7852859 (diff)
[POWERPC] Convert therm_pm72.c to use the kthread API
This converts the therm_pm72.c driver to use the kthread API. I thought about making it use kthread_stop() instead of the `state' variable and the `ctrl_complete' completion, but that isn't simple and will require changing the way that `state' is used. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/macintosh/therm_pm72.c')
-rw-r--r--drivers/macintosh/therm_pm72.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c
index e43554e754a4..6fadc9ac66b0 100644
--- a/drivers/macintosh/therm_pm72.c
+++ b/drivers/macintosh/therm_pm72.c
@@ -121,6 +121,7 @@
121#include <linux/reboot.h> 121#include <linux/reboot.h>
122#include <linux/kmod.h> 122#include <linux/kmod.h>
123#include <linux/i2c.h> 123#include <linux/i2c.h>
124#include <linux/kthread.h>
124#include <asm/prom.h> 125#include <asm/prom.h>
125#include <asm/machdep.h> 126#include <asm/machdep.h>
126#include <asm/io.h> 127#include <asm/io.h>
@@ -161,7 +162,7 @@ static struct slots_pid_state slots_state;
161static int state; 162static int state;
162static int cpu_count; 163static int cpu_count;
163static int cpu_pid_type; 164static int cpu_pid_type;
164static pid_t ctrl_task; 165static struct task_struct *ctrl_task;
165static struct completion ctrl_complete; 166static struct completion ctrl_complete;
166static int critical_state; 167static int critical_state;
167static int rackmac; 168static int rackmac;
@@ -1779,8 +1780,6 @@ static int call_critical_overtemp(void)
1779 */ 1780 */
1780static int main_control_loop(void *x) 1781static int main_control_loop(void *x)
1781{ 1782{
1782 daemonize("kfand");
1783
1784 DBG("main_control_loop started\n"); 1783 DBG("main_control_loop started\n");
1785 1784
1786 down(&driver_lock); 1785 down(&driver_lock);
@@ -1956,7 +1955,7 @@ static void start_control_loops(void)
1956{ 1955{
1957 init_completion(&ctrl_complete); 1956 init_completion(&ctrl_complete);
1958 1957
1959 ctrl_task = kernel_thread(main_control_loop, NULL, SIGCHLD | CLONE_KERNEL); 1958 ctrl_task = kthread_run(main_control_loop, NULL, "kfand");
1960} 1959}
1961 1960
1962/* 1961/*
@@ -1964,7 +1963,7 @@ static void start_control_loops(void)
1964 */ 1963 */
1965static void stop_control_loops(void) 1964static void stop_control_loops(void)
1966{ 1965{
1967 if (ctrl_task != 0) 1966 if (ctrl_task)
1968 wait_for_completion(&ctrl_complete); 1967 wait_for_completion(&ctrl_complete);
1969} 1968}
1970 1969