Hi Michael, > Calling return copy_to_user(...) in an ioctl will not do the right thing > if there's a pagefault: copy_to_user returns the number of bytes not > copied in this case. > > Fix up watchdog/rc32434_wdt to do > return copy_to_user(...)) ? -EFAULT : 0; > > instead. > > Cc: sta...@vger.kernel.org > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > > Untested. > > drivers/watchdog/rc32434_wdt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c > index 71e78ef..3a75f3b 100644 > --- a/drivers/watchdog/rc32434_wdt.c > +++ b/drivers/watchdog/rc32434_wdt.c > @@ -237,7 +237,7 @@ static long rc32434_wdt_ioctl(struct file *file, unsigned > int cmd, > return -EINVAL; > /* Fall through */ > case WDIOC_GETTIMEOUT: > - return copy_to_user(argp, &timeout, sizeof(int)); > + return copy_to_user(argp, &timeout, sizeof(int)) ? -EFAULT : 0; > default: > return -ENOTTY; > } > -- > MST
Patch has been added to linux-watchdog-next. Kind regards, Wim.