[Intel-gfx] [PATCH v1 1/2] drm/i915: Contain the WA_REG macro
Dave Gordon
david.s.gordon at intel.com
Wed Aug 12 08:40:03 PDT 2015
On 11/08/15 15:44, Arun Siluvery wrote:
> From: Mika Kuoppala <mika.kuoppala at intel.com>
>
> Prevent leaking the if scoping by containing the WA_REG
> macro inside its own scope.
>
> Reported-by: Arun Siluvery <arun.siluvery at linux.intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 1c14233..cf61262 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -780,11 +780,11 @@ static int wa_add(struct drm_i915_private *dev_priv,
> return 0;
> }
>
> -#define WA_REG(addr, mask, val) { \
> +#define WA_REG(addr, mask, val) do { \
> const int r = wa_add(dev_priv, (addr), (mask), (val)); \
> if (r) \
> return r; \
> - }
> + } while(0)
>
> #define WA_SET_BIT_MASKED(addr, mask) \
> WA_REG(addr, (mask), _MASKED_BIT_ENABLE(mask))
On the one hand, yes, this definitely needs the do-while wrapper.
OTOH, hiding a conditional 'return' inside a macro is an abomination :(
At least it's only local to this file ...
So, on the grounds that this makes it more correct if no less ugly:
Reviewed-by: Dave Gordon <david.s.gordon at intel.com>
.Dave.
More information about the Intel-gfx
mailing list