]> err.no Git - linux-2.6/blobdiff - drivers/sbus/char/bbc_envctrl.c
Pull dock-bay into release branch
[linux-2.6] / drivers / sbus / char / bbc_envctrl.c
index d89f83f769f5426d36d3e5ec16a18afcffd61469..e821a155b6588c163041d31a795313ce6158d6c3 100644 (file)
@@ -4,14 +4,10 @@
  * Copyright (C) 2001 David S. Miller (davem@redhat.com)
  */
 
-#define __KERNEL_SYSCALLS__
-static int errno;
-
-#include <linux/kernel.h>
 #include <linux/kthread.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
 #include <linux/delay.h>
+#include <linux/kmod.h>
+#include <linux/reboot.h>
 #include <asm/oplib.h>
 #include <asm/ebus.h>
 
@@ -175,8 +171,6 @@ static void get_current_temps(struct bbc_cpu_temperature *tp)
 static void do_envctrl_shutdown(struct bbc_cpu_temperature *tp)
 {
        static int shutting_down = 0;
-       static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
-       char *argv[] = { "/sbin/shutdown", "-h", "now", NULL };
        char *type = "???";
        s8 val = -1;
 
@@ -200,7 +194,7 @@ static void do_envctrl_shutdown(struct bbc_cpu_temperature *tp)
        printk(KERN_CRIT "kenvctrld: Shutting down the system now.\n");
 
        shutting_down = 1;
-       if (execve("/sbin/shutdown", argv, envp) < 0)
+       if (orderly_poweroff(true) < 0)
                printk(KERN_CRIT "envctrl: shutdown execution failed\n");
 }
 
@@ -575,9 +569,9 @@ int bbc_envctrl_init(void)
        int devidx = 0;
 
        while ((echild = bbc_i2c_getdev(devidx++)) != NULL) {
-               if (!strcmp(echild->prom_name, "temperature"))
+               if (!strcmp(echild->prom_node->name, "temperature"))
                        attach_one_temp(echild, temp_index++);
-               if (!strcmp(echild->prom_name, "fan-control"))
+               if (!strcmp(echild->prom_node->name, "fan-control"))
                        attach_one_fan(echild, fan_index++);
        }
        if (temp_index != 0 && fan_index != 0) {