Re: [PATCH V2 09/11] staging: vchiq_core: drop vchiq_status from vchiq_set_service_option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2021-04-25 at 12:51 +0200, Stefan Wahren wrote:
> Replace the custom set of return values with proper Linux error codes for
> vchiq_set_service_option(). Now we can use the result directly as return
> value for vchiq_ioctl().
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
> ---

Reviewed-by: Nicolas Saenz Julienne <nsaenz@xxxxxxxxxx>

Regards,
Nicolas

>  .../vc04_services/interface/vchiq_arm/vchiq_arm.c      |  4 ++--
>  .../vc04_services/interface/vchiq_arm/vchiq_core.c     | 18 +++++++++---------
>  .../vc04_services/interface/vchiq_arm/vchiq_core.h     |  2 +-
>  3 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> index 3395201..ab2ce07 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> @@ -1517,8 +1517,8 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  			break;
>  		}
>  
> 
> -		status = vchiq_set_service_option(
> -				args.handle, args.option, args.value);
> +		ret = vchiq_set_service_option(args.handle, args.option,
> +					       args.value);
>  	} break;
>  
> 
>  	case VCHIQ_IOC_LIB_VERSION: {
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> index 9f9677a..e150feb 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> @@ -3371,21 +3371,21 @@ void vchiq_get_config(struct vchiq_config *config)
>  	config->version_min            = VCHIQ_VERSION_MIN;
>  }
>  
> 
> -enum vchiq_status
> +int
>  vchiq_set_service_option(unsigned int handle,
>  	enum vchiq_service_option option, int value)
>  {
>  	struct vchiq_service *service = find_service_by_handle(handle);
> -	enum vchiq_status status = VCHIQ_ERROR;
>  	struct vchiq_service_quota *quota;
> +	int ret = -EINVAL;
>  
> 
>  	if (!service)
> -		return VCHIQ_ERROR;
> +		return -EINVAL;
>  
> 
>  	switch (option) {
>  	case VCHIQ_SERVICE_OPTION_AUTOCLOSE:
>  		service->auto_close = value;
> -		status = VCHIQ_SUCCESS;
> +		ret = 0;
>  		break;
>  
> 
>  	case VCHIQ_SERVICE_OPTION_SLOT_QUOTA:
> @@ -3402,7 +3402,7 @@ vchiq_set_service_option(unsigned int handle,
>  				 * dropped below its quota
>  				 */
>  				complete(&quota->quota_event);
> -			status = VCHIQ_SUCCESS;
> +			ret = 0;
>  		}
>  		break;
>  
> 
> @@ -3420,7 +3420,7 @@ vchiq_set_service_option(unsigned int handle,
>  				 * dropped below its quota
>  				 */
>  				complete(&quota->quota_event);
> -			status = VCHIQ_SUCCESS;
> +			ret = 0;
>  		}
>  		break;
>  
> 
> @@ -3428,13 +3428,13 @@ vchiq_set_service_option(unsigned int handle,
>  		if ((service->srvstate == VCHIQ_SRVSTATE_HIDDEN) ||
>  		    (service->srvstate == VCHIQ_SRVSTATE_LISTENING)) {
>  			service->sync = value;
> -			status = VCHIQ_SUCCESS;
> +			ret = 0;
>  		}
>  		break;
>  
> 
>  	case VCHIQ_SERVICE_OPTION_TRACE:
>  		service->trace = value;
> -		status = VCHIQ_SUCCESS;
> +		ret = 0;
>  		break;
>  
> 
>  	default:
> @@ -3442,7 +3442,7 @@ vchiq_set_service_option(unsigned int handle,
>  	}
>  	unlock_service(service);
>  
> 
> -	return status;
> +	return ret;
>  }
>  
> 
>  static int
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h
> index aad1c5c..bd1f590 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h
> @@ -712,7 +712,7 @@ extern int vchiq_get_client_id(unsigned int service);
>  
> 
>  extern void vchiq_get_config(struct vchiq_config *config);
>  
> 
> -extern enum vchiq_status
> +extern int
>  vchiq_set_service_option(unsigned int service, enum vchiq_service_option option,
>  			 int value);
>  
> 






[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux