Re: [PATCH] drivers/fsi/scom: Return -EFAULT if copy fails

From: Guenter Roeck
Date: Mon May 22 2023 - 18:30:16 EST


On Fri, May 19, 2023 at 09:37:10AM +0800, Su Hui wrote:
> The copy_to/from_user() functions return the number of bytes remaining
> to be copied, but we want to return -EFAULT to the user.
>
Why ? EFAULT means that a bad address was provided, and it is not
immediately obvious why that would be the case.

Guenter

> Fixes: 680ca6dcf5c2 ("drivers/fsi: Add SCOM FSI client device driver")
> Signed-off-by: Su Hui <suhui@xxxxxxxxxxxx>
> ---
> drivers/fsi/fsi-scom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/fsi/fsi-scom.c b/drivers/fsi/fsi-scom.c
> index bcb756dc9866..caaf7738eb98 100644
> --- a/drivers/fsi/fsi-scom.c
> +++ b/drivers/fsi/fsi-scom.c
> @@ -335,7 +335,7 @@ static ssize_t scom_read(struct file *filep, char __user *buf, size_t len,
> if (rc)
> dev_dbg(dev, "copy to user failed:%d\n", rc);
>
> - return rc ? rc : len;
> + return rc ? -EFAULT : len;
> }
>
> static ssize_t scom_write(struct file *filep, const char __user *buf,
> --
> 2.30.2
>