On Thu, Apr 13, 2017 at 05:25:56PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <[email protected]>
> 
> Move the BUILD_BUG_ONs for busy-wait duration outside the
> _wait_for_atomic macro as discussed on the mailing list.
> 
> Signed-off-by: Tvrtko Ursulin <[email protected]>
> Suggested-by: Michal Wajdeczko <[email protected]>
> Fixes: 1d1a9774e404 ("drm/i915: Extend intel_wait_for_register_fw() with fast 
> timeout")
> Cc: Michal Wajdeczko <[email protected]>
> Cc: Chris Wilson <[email protected]>
> ---
>  drivers/gpu/drm/i915/intel_drv.h | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_drv.h 
> b/drivers/gpu/drm/i915/intel_drv.h
> index f78d7c5f3805..4363852f8500 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -88,7 +88,6 @@
>       int cpu, ret, timeout = (US) * 1000; \
>       u64 base; \
>       _WAIT_FOR_ATOMIC_CHECK(ATOMIC); \
> -     BUILD_BUG_ON((US) > 50000); \
>       if (!(ATOMIC)) { \
>               preempt_disable(); \
>               cpu = smp_processor_id(); \
> @@ -130,8 +129,16 @@
>       ret__; \
>  })
>  
> -#define wait_for_atomic(COND, MS)    _wait_for_atomic((COND), (MS) * 1000, 1)
> -#define wait_for_atomic_us(COND, US) _wait_for_atomic((COND), (US), 1)
> +#define wait_for_atomic_us(COND, US) \
> +({ \
> +     int ret__; \
> +     BUILD_BUG_ON(!__builtin_constant_p(US)); \
> +     BUILD_BUG_ON((US) > 50000); \
> +     ret__ = _wait_for_atomic((COND), (US), 1); \
> +     ret__; \
> +})

Do we need ret__ here? Doesn't _wait_for_atomic() act as the expression
providing the value to the caller?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to