booke/wdt: some ioctls do not return values properly
Fix some booke wdt ioctls return value error. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> Acked-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
09a3017a58
commit
127c6e7311
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue