diff options
Diffstat (limited to 'drivers/watchdog/booke_wdt.c')
| -rw-r--r-- | drivers/watchdog/booke_wdt.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c index 3fe82d0e8ca..5b06d31ab6a 100644 --- a/drivers/watchdog/booke_wdt.c +++ b/drivers/watchdog/booke_wdt.c @@ -166,18 +166,17 @@ static long booke_wdt_ioctl(struct file *file,  	switch (cmd) {  	case WDIOC_GETSUPPORT: -		if (copy_to_user((void *)arg, &ident, sizeof(ident))) -			return -EFAULT; +		return copy_to_user(p, &ident, sizeof(ident)) ? -EFAULT : 0;  	case WDIOC_GETSTATUS:  		return put_user(0, p);  	case WDIOC_GETBOOTSTATUS:  		/* XXX: something is clearing TSR */  		tmp = mfspr(SPRN_TSR) & TSR_WRS(3);  		/* returns CARDRESET if last reset was caused by the WDT */ -		return (tmp ? WDIOF_CARDRESET : 0); +		return put_user((tmp ? WDIOF_CARDRESET : 0), p);  	case WDIOC_SETOPTIONS:  		if (get_user(tmp, p)) -			return -EINVAL; +			return -EFAULT;  		if (tmp == WDIOS_ENABLECARD) {  			booke_wdt_ping();  			break;  |