staging: vchiq_core: avoid indention in poll_services_of_group
authorStefan Wahren <stefan.wahren@i2se.com>
Sat, 15 May 2021 19:10:46 +0000 (21:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 15:56:31 +0000 (17:56 +0200)
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: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1621105859-30215-8-git-send-email-stefan.wahren@i2se.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c

index 3e847d8821d63ca7b0a2f5e5810c57986a6d6421..b3e81acac3993297a3393e8a98301df5d4712c95 100644 (file)
@@ -1325,59 +1325,54 @@ 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);
-                       u32 service_flags;
-
-                       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",
-                                       state->id, service->localport,
-                                       service->remoteport);
+               struct vchiq_service *service;
+               u32 service_flags;
 
-                               /*
-                                * Make it look like a client, because
-                                * it must be removed and not left in
-                                * the LISTENING state.
-                                */
-                               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)) {
-                               vchiq_log_info(vchiq_core_log_level,
-                                       "%d: ps - terminate %d<->%d",
-                                       state->id, service->localport,
-                                       service->remoteport);
-                               if (vchiq_close_service_internal(
-                                       service, 0/*!close_recvd*/) !=
-                                       VCHIQ_SUCCESS)
-                                       request_poll(state, service,
-                                               VCHIQ_POLL_TERMINATE);
-                       }
-                       if (service_flags & BIT(VCHIQ_POLL_TXNOTIFY))
-                               notify_bulks(service,
-                                       &service->bulk_tx,
-                                       1/*retry_poll*/);
-                       if (service_flags & BIT(VCHIQ_POLL_RXNOTIFY))
-                               notify_bulks(service,
-                                       &service->bulk_rx,
-                                       1/*retry_poll*/);
-                       unlock_service(service);
+               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)) == 0)
+                       continue;
+
+               vchiq_log_info(vchiq_core_log_level, "%d: ps - remove %d<->%d",
+                              state->id, service->localport,
+                              service->remoteport);
+
+               /*
+                * Make it look like a client, because
+                * it must be removed and not left in
+                * the LISTENING state.
+                */
+               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)) {
+                       vchiq_log_info(vchiq_core_log_level,
+                               "%d: ps - terminate %d<->%d",
+                               state->id, service->localport,
+                               service->remoteport);
+                       if (vchiq_close_service_internal(
+                               service, 0/*!close_recvd*/) !=
+                               VCHIQ_SUCCESS)
+                               request_poll(state, service,
+                                            VCHIQ_POLL_TERMINATE);
                }
+               if (service_flags & BIT(VCHIQ_POLL_TXNOTIFY))
+                       notify_bulks(service, &service->bulk_tx,
+                                    1/*retry_poll*/);
+               if (service_flags & BIT(VCHIQ_POLL_RXNOTIFY))
+                       notify_bulks(service, &service->bulk_rx,
+                                    1/*retry_poll*/);
+               unlock_service(service);
        }
 }