Re: [PATCH 03/20] staging: vchiq_core: separate postfix increment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stefan,

On Sat, May 15, 2021 at 09:10:42PM +0200, Stefan Wahren wrote:
> Postfix increment within a complexer statement doesn't improve readability.
> So separate them.
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
> ---
>  .../vc04_services/interface/vchiq_arm/vchiq_core.c       | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 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 85fd0a6..a22d8b7 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> @@ -243,7 +243,8 @@ __next_service_by_instance(struct vchiq_state *state,
>  	while (idx < state->unused_service) {
>  		struct vchiq_service *srv;
>  
> -		srv = rcu_dereference(state->services[idx++]);
> +		srv = rcu_dereference(state->services[idx]);
> +		idx++;
>  		if (srv && srv->srvstate != VCHIQ_SRVSTATE_FREE &&
>  		    srv->instance == instance) {
>  			service = srv;
> @@ -649,11 +650,12 @@ process_free_queue(struct vchiq_state *state, BITSET_T *service_found,
>  
>  	while (slot_queue_available != local->slot_queue_recycle) {
>  		unsigned int pos;
> -		int slot_index = local->slot_queue[slot_queue_available++ &
> +		int slot_index = local->slot_queue[slot_queue_available &
>  			VCHIQ_SLOT_QUEUE_MASK];
>  		char *data = (char *)SLOT_DATA_FROM_INDEX(state, slot_index);
>  		int data_found = 0;
>  
> +		slot_queue_available++;
>  		/*
>  		 * Beware of the address dependency - data is calculated
>  		 * using an index written by the other side.
> @@ -1175,7 +1177,6 @@ static void
>  release_slot(struct vchiq_state *state, struct vchiq_slot_info *slot_info,
>  	     struct vchiq_header *header, struct vchiq_service *service)
>  {
> -
>  	mutex_lock(&state->recycle_mutex);

this change is a separate logical change so should go in a separate patch...

>  
>  	if (header) {
> @@ -2215,7 +2216,8 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
>  	}
>  
>  	for (i = local->slot_first; i <= local->slot_last; i++) {
> -		local->slot_queue[state->slot_queue_available++] = i;
> +		local->slot_queue[state->slot_queue_available] = i;
> +		state->slot_queue_available++;
>  		complete(&state->slot_available_event);
>  	}
>  
> @@ -2319,7 +2321,8 @@ void vchiq_msg_queue_push(unsigned int handle, struct vchiq_header *header)
>  			flush_signals(current);
>  	}
>  
> -	pos = service->msg_queue_write++ & (VCHIQ_MAX_SLOTS - 1);
> +	pos = service->msg_queue_write & (VCHIQ_MAX_SLOTS - 1);
> +	service->msg_queue_write++;
>  	service->msg_queue[pos] = header;
>  
>  	complete(&service->msg_queue_push);
> @@ -2340,7 +2343,8 @@ struct vchiq_header *vchiq_msg_hold(unsigned int handle)
>  			flush_signals(current);
>  	}
>  
> -	pos = service->msg_queue_read++ & (VCHIQ_MAX_SLOTS - 1);
> +	pos = service->msg_queue_read & (VCHIQ_MAX_SLOTS - 1);
> +	service->msg_queue_read++;
>  	header = service->msg_queue[pos];
>  
>  	complete(&service->msg_queue_pop);
> -- 
> 2.7.4
> 
> 

thank you,

fabio




[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux