[Intel-gfx] [PATCH 01/14] drm/i915/guc: Do not use 0 for GuC doorbell cookie
Sagar Arun Kamble
sagar.a.kamble at intel.com
Sat Oct 21 06:28:27 UTC 2017
On 10/20/2017 12:06 AM, Michał Winiarski wrote:
> Apparently, this value is reserved and may be interpreted as changing
> doorbell ownership. Even though we're not observing any side effects
> now, let's skip over it to be consistent with the spec.
>
> Suggested-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
> drivers/gpu/drm/i915/i915_guc_submission.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
> index a2e8114b739d..02ca2a412c62 100644
> --- a/drivers/gpu/drm/i915/i915_guc_submission.c
> +++ b/drivers/gpu/drm/i915/i915_guc_submission.c
> @@ -475,9 +475,10 @@ static void guc_ring_doorbell(struct i915_guc_client *client)
> /* pointer of current doorbell cacheline */
> db = __get_doorbell(client);
>
> - /* we're not expecting the doorbell cookie to change behind our back */
> + /* we're not expecting the doorbell cookie to change behind our back,
> + * we also need to treat 0 as a reserved value */
Need to fix /* & */.
Change looks good to me.
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble at gmail.com>
> cookie = READ_ONCE(db->cookie);
> - WARN_ON_ONCE(xchg(&db->cookie, cookie + 1) != cookie);
> + WARN_ON_ONCE(xchg(&db->cookie, cookie + 1 ?: cookie + 2) != cookie);
>
> /* XXX: doorbell was lost and need to acquire it again */
> GEM_BUG_ON(db->db_status != GUC_DOORBELL_ENABLED);
More information about the Intel-gfx
mailing list