[PATCH] staging: vc04_services: vchiq_arm: replace bitshift with BIT macro

Dan Carpenter dan.carpenter at oracle.com
Fri Jun 19 08:01:22 UTC 2020


On Thu, Jun 18, 2020 at 06:02:59PM +0200, Garrit Franke wrote:
> This should prevent possible overflowing bits by using the BIT macro in
> vchiq_core

There is no reason to think that these will overflow.  For that to
happen we would need to be using a 64bit with a 1 << 31 shift.

			if (flags & BIT(i)) {
                            ^^^^^
Is "flags" a 64 bit and can "i" go up to 31?  Just say that it's a clean
up.

> 
> Signed-off-by: Garrit Franke <garritfranke at gmail.com>
> ---
>  .../interface/vchiq_arm/vchiq_core.c          | 22 +++++++++----------
>  1 file changed, 11 insertions(+), 11 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 ae9183db44ee..5a6d2bd59ec0 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
> @@ -39,9 +39,9 @@ struct vchiq_openack_payload {
>  };
>  
>  enum {
> -	QMFLAGS_IS_BLOCKING     = (1 << 0),
> -	QMFLAGS_NO_MUTEX_LOCK   = (1 << 1),
> -	QMFLAGS_NO_MUTEX_UNLOCK = (1 << 2)
> +	QMFLAGS_IS_BLOCKING     = BIT(0),
> +	QMFLAGS_NO_MUTEX_LOCK   = BIT(1),
> +	QMFLAGS_NO_MUTEX_UNLOCK = BIT(2)
>  };
>  
>  /* we require this for consistency between endpoints */
> @@ -526,14 +526,14 @@ request_poll(struct vchiq_state *state, struct vchiq_service *service,
>  		do {
>  			value = atomic_read(&service->poll_flags);
>  		} while (atomic_cmpxchg(&service->poll_flags, value,
> -			value | (1 << poll_type)) != value);
> +			value | BIT(poll_type)) != value);
>  
>  		do {
>  			value = atomic_read(&state->poll_services[
>  				service->localport>>5]);
>  		} while (atomic_cmpxchg(
>  			&state->poll_services[service->localport>>5],
> -			value, value | (1 << (service->localport & 0x1f)))
> +			value, value | BIT((service->localport & 0x1f)))
                                           ^                         ^
Too many parentheses.

Otherwise it looks fine.

regards,
dan carpenter



More information about the devel mailing list