Commit 73a09e62 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] drivers/char/watchdog/sbc_epx_c3.c __user annotations



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent dad08dfc
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ static int epx_c3_release(struct inode *inode, struct file *file)
	return 0;
}

static ssize_t epx_c3_write(struct file *file, const char *data,
static ssize_t epx_c3_write(struct file *file, const char __user *data,
			size_t len, loff_t *ppos)
{
	/* Refresh the timer. */
@@ -105,6 +105,7 @@ static int epx_c3_ioctl(struct inode *inode, struct file *file,
			unsigned int cmd, unsigned long arg)
{
	int options, retval = -EINVAL;
	int __user *argp = (void __user *)arg;
	static struct watchdog_info ident = {
		.options		= WDIOF_KEEPALIVEPING |
					  WDIOF_MAGICCLOSE,
@@ -114,20 +115,19 @@ static int epx_c3_ioctl(struct inode *inode, struct file *file,

	switch (cmd) {
	case WDIOC_GETSUPPORT:
		if (copy_to_user((struct watchdog_info *)arg,
				 &ident, sizeof(ident)))
		if (copy_to_user(argp, &ident, sizeof(ident)))
			return -EFAULT;
		return 0;
	case WDIOC_GETSTATUS:
	case WDIOC_GETBOOTSTATUS:
		return put_user(0,(int *)arg);
		return put_user(0, argp);
	case WDIOC_KEEPALIVE:
		epx_c3_pet();
		return 0;
	case WDIOC_GETTIMEOUT:
		return put_user(WATCHDOG_TIMEOUT,(int *)arg);
	case WDIOC_SETOPTIONS: {
		if (get_user(options, (int *)arg))
		return put_user(WATCHDOG_TIMEOUT, argp);
	case WDIOC_SETOPTIONS:
		if (get_user(options, argp))
			return -EFAULT;

		if (options & WDIOS_DISABLECARD) {
@@ -141,7 +141,6 @@ static int epx_c3_ioctl(struct inode *inode, struct file *file,
		}

		return retval;
	}
	default:
		return -ENOIOCTLCMD;
	}