Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 872ec648 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC] {bbc_,}envctrl: Use call_usermodehelper().



We should not be calling kernel_execve() directly and this
causes module build failures because kernel_execve() is not
exported to modules.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b48194bf
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@
 */

#include <linux/kthread.h>
#include <linux/syscalls.h>
#include <linux/delay.h>
#include <linux/kmod.h>
#include <asm/oplib.h>
#include <asm/ebus.h>

@@ -195,7 +195,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 (kernel_execve("/sbin/shutdown", argv, envp) < 0)
	if (call_usermodehelper("/sbin/shutdown", argv, envp, 0) < 0)
		printk(KERN_CRIT "envctrl: shutdown execution failed\n");
}

+2 −2
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
#include <linux/delay.h>
#include <linux/ioport.h>
#include <linux/miscdevice.h>
#include <linux/syscalls.h>
#include <linux/kmod.h>

#include <asm/ebus.h>
#include <asm/uaccess.h>
@@ -976,7 +976,7 @@ static void envctrl_do_shutdown(void)

	inprog = 1;
	printk(KERN_CRIT "kenvctrld: WARNING: Shutting down the system now.\n");
	ret = kernel_execve("/sbin/shutdown", argv, envp);
	ret = call_usermodehelper("/sbin/shutdown", argv, envp, 0);
	if (ret < 0) {
		printk(KERN_CRIT "kenvctrld: WARNING: system shutdown failed!\n"); 
		inprog = 0;  /* unlikely to succeed, but we could try again */