staging: vchiq: move vchiq_release_message() into vchiq
authorNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Wed, 27 May 2020 11:53:14 +0000 (13:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 12:04:32 +0000 (14:04 +0200)
For messages with a reason different from VCHIQ_MESSAGE_AVAILABLE the
responsibility for releasing them is kept in vchi, in other words,
services don't need to worry about it. As we're trying to unify vchi and
vchiq, move the release code into vchiq.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Link: https://lore.kernel.org/r/20200527115400.31391-10-nsaenzjulienne@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c

index 67b2090c91db684ff4edd684c1c143e5f33df1bd..ef31e541c902af6ebe1f7987abdef1cae39a4b59 100644 (file)
@@ -372,6 +372,10 @@ make_service_callback(struct vchiq_service *service, enum vchiq_reason reason,
                        service->state->id, service->handle);
                status = VCHIQ_SUCCESS;
        }
+
+       if (reason != VCHIQ_MESSAGE_AVAILABLE)
+               vchiq_release_message(service->handle, header);
+
        return status;
 }
 
index 0fc5fa05c6c2902a196ae469ac2be7ab69104bd6..55f9e34ea50e1e925f1eca15a29e6e4b8feb5d67 100644 (file)
@@ -444,7 +444,7 @@ static enum vchiq_status shim_callback(enum vchiq_reason reason,
                service->callback(service->callback_param,
                                  VCHI_CALLBACK_MSG_AVAILABLE, NULL);
 
-               goto done;
+               break;
 
        case VCHIQ_BULK_TRANSMIT_DONE:
                service->callback(service->callback_param,
@@ -483,8 +483,6 @@ static enum vchiq_status shim_callback(enum vchiq_reason reason,
        }
 
 release:
-       vchiq_release_message(service->handle, header);
-done:
        return VCHIQ_SUCCESS;
 }