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>hifive-unleashed-5.1
parent
09a3017a58
commit
127c6e7311
|
@ -166,18 +166,17 @@ static long booke_wdt_ioctl(struct file *file,
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case WDIOC_GETSUPPORT:
|
case WDIOC_GETSUPPORT:
|
||||||
if (copy_to_user((void *)arg, &ident, sizeof(ident)))
|
return copy_to_user(p, &ident, sizeof(ident)) ? -EFAULT : 0;
|
||||||
return -EFAULT;
|
|
||||||
case WDIOC_GETSTATUS:
|
case WDIOC_GETSTATUS:
|
||||||
return put_user(0, p);
|
return put_user(0, p);
|
||||||
case WDIOC_GETBOOTSTATUS:
|
case WDIOC_GETBOOTSTATUS:
|
||||||
/* XXX: something is clearing TSR */
|
/* XXX: something is clearing TSR */
|
||||||
tmp = mfspr(SPRN_TSR) & TSR_WRS(3);
|
tmp = mfspr(SPRN_TSR) & TSR_WRS(3);
|
||||||
/* returns CARDRESET if last reset was caused by the WDT */
|
/* 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:
|
case WDIOC_SETOPTIONS:
|
||||||
if (get_user(tmp, p))
|
if (get_user(tmp, p))
|
||||||
return -EINVAL;
|
return -EFAULT;
|
||||||
if (tmp == WDIOS_ENABLECARD) {
|
if (tmp == WDIOS_ENABLECARD) {
|
||||||
booke_wdt_ping();
|
booke_wdt_ping();
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue