[PATCH] cxl: Fix error path on bad ioctl

Michael Ellerman mpe at ellerman.id.au
Tue Jun 6 19:20:11 AEST 2017


Frederic Barrat <fbarrat at linux.vnet.ibm.com> writes:

> Fix error path if we can't copy user structure on
> CXL_IOCTL_START_WORK ioctl.

To be clear the error is that returning via the out label will unlock
cxl->status_mutex, which has not been locked.

Please spell it out for me :)

This should be:

  Fixes: 0712dc7e73e5 ("cxl: Fix issues when unmapping contexts")

Am I right?

cheers

> diff --git a/drivers/misc/cxl/file.c b/drivers/misc/cxl/file.c
> index 17b433f1ce23..caa44adfa60e 100644
> --- a/drivers/misc/cxl/file.c
> +++ b/drivers/misc/cxl/file.c
> @@ -160,10 +160,8 @@ static long afu_ioctl_start_work(struct cxl_context *ctx,
>  	/* Do this outside the status_mutex to avoid a circular dependency with
>  	 * the locking in cxl_mmap_fault() */
>  	if (copy_from_user(&work, uwork,
> -			   sizeof(struct cxl_ioctl_start_work))) {
> -		rc = -EFAULT;
> -		goto out;
> -	}
> +			   sizeof(struct cxl_ioctl_start_work)))
> +		return -EFAULT;
>  
>  	mutex_lock(&ctx->status_mutex);
>  	if (ctx->status != OPENED) {
> -- 
> 2.11.0


More information about the Linuxppc-dev mailing list