[PATCH 1/1] booke/wdt: fix incorrect WDIOC_GETSUPPORT return path
Tabi Timur-B04825
B04825 at freescale.com
Tue Aug 7 11:19:58 EST 2012
On Mon, Aug 6, 2012 at 2:12 PM, Tabi Timur-B04825 <b04825 at freescale.com> wrote:
> On Mon, Jul 30, 2012 at 3:15 AM, Tiejun Chen <tiejun.chen at windriver.com> wrote:
>> We miss that correct WDIOC_GETSUPPORT return path when perform
>> copy_to_user() properly.
>
> Thanks for catching this. I'm amazed that this driver still has bugs like this.
While you're at it, I found a few related bugs. Can you fix these, also?
1. case WDIOC_SETOPTIONS:
if (get_user(tmp, p))
return -EINVAL;
This should return -EFAULT.
2. 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);
This should use put_user() to return the value, instead of returning
it as a return code.
You can title the new patch something like, "booke/wdt: some ioctls do
not return values properly"
--
Timur Tabi
Linux kernel developer at Freescale
More information about the Linuxppc-dev
mailing list