Commit 2f440843 authored by Stefan Wahren's avatar Stefan Wahren Committed by Greg Kroah-Hartman
Browse files

staging: vchiq_core: avoid indention in poll_services_of_group



By converting the first and the third if statement into continue early
the function poll_services_of_group() can avoid 2 indention levels.

Signed-off-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1621105859-30215-8-git-send-email-stefan.wahren@i2se.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 20ebcf0b
Loading
Loading
Loading
Loading
+46 −51
Original line number Diff line number Diff line
@@ -1325,21 +1325,23 @@ poll_services_of_group(struct vchiq_state *state, int group)
	int i;

	for (i = 0; flags; i++) {
		if (flags & BIT(i)) {
			struct vchiq_service *service =
				find_service_by_port(state,
					(group<<5) + i);
		struct vchiq_service *service;
		u32 service_flags;

		if ((flags & BIT(i)) == 0)
			continue;

		service = find_service_by_port(state, (group << 5) + i);
		flags &= ~BIT(i);

		if (!service)
			continue;
			service_flags =
				atomic_xchg(&service->poll_flags, 0);
			if (service_flags &
				BIT(VCHIQ_POLL_REMOVE)) {
				vchiq_log_info(vchiq_core_log_level,
					"%d: ps - remove %d<->%d",

		service_flags = atomic_xchg(&service->poll_flags, 0);
		if ((service_flags & BIT(VCHIQ_POLL_REMOVE)) == 0)
			continue;

		vchiq_log_info(vchiq_core_log_level, "%d: ps - remove %d<->%d",
			       state->id, service->localport,
			       service->remoteport);

@@ -1348,16 +1350,12 @@ poll_services_of_group(struct vchiq_state *state, int group)
		 * it must be removed and not left in
		 * the LISTENING state.
		 */
				service->public_fourcc =
					VCHIQ_FOURCC_INVALID;
		service->public_fourcc = VCHIQ_FOURCC_INVALID;

				if (vchiq_close_service_internal(
					service, 0/*!close_recvd*/) !=
					VCHIQ_SUCCESS)
					request_poll(state, service,
						VCHIQ_POLL_REMOVE);
			} else if (service_flags &
				BIT(VCHIQ_POLL_TERMINATE)) {
		if (vchiq_close_service_internal(service, 0/*!close_recvd*/) !=
						 VCHIQ_SUCCESS) {
			request_poll(state, service, VCHIQ_POLL_REMOVE);
		} else if (service_flags & BIT(VCHIQ_POLL_TERMINATE)) {
			vchiq_log_info(vchiq_core_log_level,
				"%d: ps - terminate %d<->%d",
				state->id, service->localport,
@@ -1369,17 +1367,14 @@ poll_services_of_group(struct vchiq_state *state, int group)
					     VCHIQ_POLL_TERMINATE);
		}
		if (service_flags & BIT(VCHIQ_POLL_TXNOTIFY))
				notify_bulks(service,
					&service->bulk_tx,
			notify_bulks(service, &service->bulk_tx,
				     1/*retry_poll*/);
		if (service_flags & BIT(VCHIQ_POLL_RXNOTIFY))
				notify_bulks(service,
					&service->bulk_rx,
			notify_bulks(service, &service->bulk_rx,
				     1/*retry_poll*/);
		unlock_service(service);
	}
}
}

/* Called by the slot handler thread */
static void