drm/i915: Avoid refcount_inc on known zero count
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 28 May 2019 15:40:53 +0000 (16:40 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 29 May 2019 12:15:39 +0000 (13:15 +0100)
commit0c1f845772e5d6d1b1739cb938403527bc6b29e1
tree04083e57f7dc8179291ec79897244e4a5f3a1b56
parent81a04d2e9091832710549176db0e46d1a666f9ae
drm/i915: Avoid refcount_inc on known zero count

In intel_wakeref_auto, we use refcount_inc_not_zero to detect the first
use and initialise the timer. On doing so, we have to avoid using
refcount_inc on that zero count as the debug code flags that as an
error:
refcount_t: increment on 0; use-after-free.

Rearrange the code so that if we know the count is 0 and we are
initialising, we explicitly set it to 1.

Fixes: b27e35ae5b18 ("drm/i915: Keep user GGTT alive for a minimum of 250ms")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190528154053.22004-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_wakeref.c