Re: [PATCH v5 05/18] watchdog: cpwd: use generic compat_ptr_ioctl
From: Guenter Roeck
Date: Mon Oct 07 2019 - 19:28:37 EST
Arnd,
On Wed, Aug 14, 2019 at 10:42:32PM +0200, Arnd Bergmann wrote:
> The cpwd_compat_ioctl() contains a bogus mutex that dates
> back to a leftover BKL instance.
>
> Simplify the implementation by using the new compat_ptr_ioctl()
> helper function that will do the right thing for all calls
> here.
>
> Note that WIOCSTART/WIOCSTOP don't take any arguments, so
> the compat_ptr() conversion is not needed here, but it also
> doesn't hurt.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
This patch made it into the kernel, but the infrastructure didn't make it.
Do we need to revert it ?
Guenter
> ---
> drivers/watchdog/cpwd.c | 25 +------------------------
> 1 file changed, 1 insertion(+), 24 deletions(-)
>
> diff --git a/drivers/watchdog/cpwd.c b/drivers/watchdog/cpwd.c
> index b973b31179df..9393be584e72 100644
> --- a/drivers/watchdog/cpwd.c
> +++ b/drivers/watchdog/cpwd.c
> @@ -473,29 +473,6 @@ static long cpwd_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> return 0;
> }
>
> -static long cpwd_compat_ioctl(struct file *file, unsigned int cmd,
> - unsigned long arg)
> -{
> - int rval = -ENOIOCTLCMD;
> -
> - switch (cmd) {
> - /* solaris ioctls are specific to this driver */
> - case WIOCSTART:
> - case WIOCSTOP:
> - case WIOCGSTAT:
> - mutex_lock(&cpwd_mutex);
> - rval = cpwd_ioctl(file, cmd, arg);
> - mutex_unlock(&cpwd_mutex);
> - break;
> -
> - /* everything else is handled by the generic compat layer */
> - default:
> - break;
> - }
> -
> - return rval;
> -}
> -
> static ssize_t cpwd_write(struct file *file, const char __user *buf,
> size_t count, loff_t *ppos)
> {
> @@ -520,7 +497,7 @@ static ssize_t cpwd_read(struct file *file, char __user *buffer,
> static const struct file_operations cpwd_fops = {
> .owner = THIS_MODULE,
> .unlocked_ioctl = cpwd_ioctl,
> - .compat_ioctl = cpwd_compat_ioctl,
> + .compat_ioctl = compat_ptr_ioctl,
> .open = cpwd_open,
> .write = cpwd_write,
> .read = cpwd_read,