Storing the index for poll services in a local var will increase the readability of the second loop. Also we get the rid off the checkpatch issue about the line ending with a square bracket. Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx> --- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 be0ea1e..22989866 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c @@ -537,6 +537,7 @@ request_poll(struct vchiq_state *state, struct vchiq_service *service, int poll_type) { u32 value; + int index; if (!service) goto skip_service; @@ -546,12 +547,11 @@ request_poll(struct vchiq_state *state, struct vchiq_service *service, } while (atomic_cmpxchg(&service->poll_flags, value, value | BIT(poll_type)) != value); + index = service->localport >> 5; do { - value = atomic_read(&state->poll_services[ - service->localport>>5]); - } while (atomic_cmpxchg( - &state->poll_services[service->localport>>5], value, - value | BIT(service->localport & 0x1f)) != value); + value = atomic_read(&state->poll_services[index]); + } while (atomic_cmpxchg(&state->poll_services[index], + value, value | BIT(service->localport & 0x1f)) != value); skip_service: state->poll_needed = 1; -- 2.7.4