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("a->quota_event); > - status = VCHIQ_SUCCESS; > + ret = 0; > } > break; > > > @@ -3420,7 +3420,7 @@ vchiq_set_service_option(unsigned int handle, > * dropped below its quota > */ > complete("a->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); > >