From 87b554a04a0d12f8ff3612b6c2e163e29a34616a Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Fri, 15 Oct 2010 05:44:07 +0200 Subject: [PATCH] Staging: intel_sst: return -EFAULT if copy_to_user() fails copy_to_user() returns the number of bytes remaining to be copied but we want to return an error code. And that error code is -EFAULT not -EIO. Signed-off-by: Dan Carpenter Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman --- drivers/staging/intel_sst/intel_sst_app_interface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/intel_sst/intel_sst_app_interface.c b/drivers/staging/intel_sst/intel_sst_app_interface.c index 1429386a1c67..b92ce377b102 100644 --- a/drivers/staging/intel_sst/intel_sst_app_interface.c +++ b/drivers/staging/intel_sst/intel_sst_app_interface.c @@ -861,6 +861,8 @@ long intel_sst_ioctl(struct file *file_ptr, unsigned int cmd, unsigned long arg) str_info->src = SST_DRV; retval = copy_to_user(&str_param->stream_id, &retval, sizeof(__u32)); + if (retval) + retval = -EFAULT; } else { if (retval == -SST_ERR_INVALID_PARAMS) retval = -EINVAL; @@ -934,7 +936,7 @@ long intel_sst_ioctl(struct file *file_ptr, unsigned int cmd, unsigned long arg) retval = copy_to_user((struct snd_sst_vol *)arg, &get_vol, sizeof(get_vol)); if (retval) { - retval = -EIO; + retval = -EFAULT; break; } /*sst_print_get_vol_info(str_id, &get_vol);*/ -- 2.20.1