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

Commit 00e9c205 authored by Alan Cox's avatar Alan Cox Committed by Wim Van Sebroeck
Browse files

[WATCHDOG 20/57] booke watchdog: clean up and unlocked_ioctl



Review and switch to unlocked_ioctl

Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent 9a5f50d3
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@
#include <linux/miscdevice.h>
#include <linux/notifier.h>
#include <linux/watchdog.h>
#include <linux/uaccess.h>

#include <asm/reg_booke.h>
#include <asm/uaccess.h>
#include <asm/system.h>

/* If the kernel parameter wdt=1, the watchdog will be enabled at boot.
@@ -82,7 +82,7 @@ static struct watchdog_info ident = {
	.identity = "PowerPC Book-E Watchdog",
};

static int booke_wdt_ioctl(struct inode *inode, struct file *file,
static long booke_wdt_ioctl(struct file *file,
				unsigned int cmd, unsigned long arg)
{
	u32 tmp = 0;
@@ -90,8 +90,7 @@ static int booke_wdt_ioctl(struct inode *inode, struct file *file,

	switch (cmd) {
	case WDIOC_GETSUPPORT:
		if (copy_to_user((struct watchdog_info __user *)arg, &ident,
				sizeof(struct watchdog_info)))
		if (copy_to_user(arg, &ident, sizeof(struct watchdog_info)))
			return -EFAULT;
	case WDIOC_GETSTATUS:
		return put_user(ident.options, p);
@@ -106,7 +105,8 @@ static int booke_wdt_ioctl(struct inode *inode, struct file *file,
	case WDIOC_SETTIMEOUT:
		if (get_user(booke_wdt_period, p))
			return -EFAULT;
		mtspr(SPRN_TCR, (mfspr(SPRN_TCR)&~WDTP(0))|WDTP(booke_wdt_period));
		mtspr(SPRN_TCR, (mfspr(SPRN_TCR) & ~WDTP(0)) |
						WDTP(booke_wdt_period));
		return 0;
	case WDIOC_GETTIMEOUT:
		return put_user(booke_wdt_period, p);
@@ -132,8 +132,9 @@ static int booke_wdt_open(struct inode *inode, struct file *file)
	if (booke_wdt_enabled == 0) {
		booke_wdt_enabled = 1;
		on_each_cpu(__booke_wdt_enable, NULL, 0, 0);
		printk(KERN_INFO "PowerPC Book-E Watchdog Timer Enabled "
				"(wdt_period=%d)\n", booke_wdt_period);
		printk(KERN_INFO
		      "PowerPC Book-E Watchdog Timer Enabled (wdt_period=%d)\n",
				booke_wdt_period);
	}
	spin_unlock(&booke_wdt_lock);

@@ -144,7 +145,7 @@ static const struct file_operations booke_wdt_fops = {
	.owner = THIS_MODULE,
	.llseek = no_llseek,
	.write = booke_wdt_write,
	.ioctl = booke_wdt_ioctl,
	.unlocked_ioctl = booke_wdt_ioctl,
	.open = booke_wdt_open,
};

@@ -175,8 +176,9 @@ static int __init booke_wdt_init(void)

	spin_lock(&booke_wdt_lock);
	if (booke_wdt_enabled == 1) {
		printk(KERN_INFO "PowerPC Book-E Watchdog Timer Enabled "
				"(wdt_period=%d)\n", booke_wdt_period);
		printk(KERN_INFO
		      "PowerPC Book-E Watchdog Timer Enabled (wdt_period=%d)\n",
				booke_wdt_period);
		on_each_cpu(__booke_wdt_enable, NULL, 0, 0);
	}
	spin_unlock(&booke_wdt_lock);