From: Stefan Wahren Date: Thu, 3 Jun 2021 15:50:03 +0000 (+0200) Subject: staging: vchiq_core: store message id in local variable X-Git-Tag: v5.15~790^2~184 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bc60b0f834a332a07431147e8c1e9acb8d64de91;p=platform%2Fkernel%2Flinux-starfive.git staging: vchiq_core: store message id in local variable Some queue_message() calls are still rather complex to read. So store the message ids in a local variable in those cases. Signed-off-by: Stefan Wahren Link: https://lore.kernel.org/r/1622735405-9980-15-git-send-email-stefan.wahren@i2se.com Signed-off-by: Greg Kroah-Hartman --- 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 3d543c5..a2a2472 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c @@ -1576,6 +1576,7 @@ parse_open(struct vchiq_state *state, struct vchiq_header *header) struct vchiq_openack_payload ack_payload = { service->version }; + int openack_id = MAKE_OPENACK(service->localport, remoteport); if (state->version_common < VCHIQ_VERSION_SYNCHRONOUS_MODE) @@ -1583,16 +1584,14 @@ parse_open(struct vchiq_state *state, struct vchiq_header *header) /* Acknowledge the OPEN */ if (service->sync) { - if (queue_message_sync(state, NULL, - MAKE_OPENACK(service->localport, remoteport), + if (queue_message_sync(state, NULL, openack_id, memcpy_copy_callback, &ack_payload, sizeof(ack_payload), 0) == VCHIQ_RETRY) goto bail_not_ready; } else { - if (queue_message(state, NULL, - MAKE_OPENACK(service->localport, remoteport), + if (queue_message(state, NULL, openack_id, memcpy_copy_callback, &ack_payload, sizeof(ack_payload), @@ -2804,6 +2803,8 @@ vchiq_close_service_internal(struct vchiq_service *service, int close_recvd) struct vchiq_state *state = service->state; enum vchiq_status status = VCHIQ_SUCCESS; int is_server = (service->public_fourcc != VCHIQ_FOURCC_INVALID); + int close_id = MAKE_CLOSE(service->localport, + VCHIQ_MSG_DSTPORT(service->remoteport)); vchiq_log_info(vchiq_core_log_level, "%d: csi:%d,%d (%s)", service->state->id, service->localport, close_recvd, @@ -2842,9 +2843,7 @@ vchiq_close_service_internal(struct vchiq_service *service, int close_recvd) complete(&service->remove_event); } else { /* Shutdown mid-open - let the other side know */ - status = queue_message(state, service, - MAKE_CLOSE(service->localport, - VCHIQ_MSG_DSTPORT(service->remoteport)), + status = queue_message(state, service, close_id, NULL, NULL, 0, 0); } break; @@ -2861,9 +2860,7 @@ vchiq_close_service_internal(struct vchiq_service *service, int close_recvd) release_service_messages(service); if (status == VCHIQ_SUCCESS) - status = queue_message(state, service, - MAKE_CLOSE(service->localport, - VCHIQ_MSG_DSTPORT(service->remoteport)), + status = queue_message(state, service, close_id, NULL, NULL, 0, QMFLAGS_NO_MUTEX_UNLOCK); if (status != VCHIQ_SUCCESS) { @@ -3318,6 +3315,7 @@ vchiq_queue_message(unsigned int handle, { struct vchiq_service *service = find_service_by_handle(handle); enum vchiq_status status = VCHIQ_ERROR; + int data_id; if (!service) goto error_exit; @@ -3336,17 +3334,15 @@ vchiq_queue_message(unsigned int handle, goto error_exit; } + data_id = MAKE_DATA(service->localport, service->remoteport); + switch (service->srvstate) { case VCHIQ_SRVSTATE_OPEN: - status = queue_message(service->state, service, - MAKE_DATA(service->localport, - service->remoteport), + status = queue_message(service->state, service, data_id, copy_callback, context, size, 1); break; case VCHIQ_SRVSTATE_OPENSYNC: - status = queue_message_sync(service->state, service, - MAKE_DATA(service->localport, - service->remoteport), + status = queue_message_sync(service->state, service, data_id, copy_callback, context, size, 1); break; default: