Skip to content

Commit

Permalink
drm/i915: Local debug BUG_ON for intel_wakeref
Browse files Browse the repository at this point in the history
Avoid pulling in i915_gem.h just so that we can use a conditional BUG_ON
for debugging.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190621183801.23252-5-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Jun 21, 2019
1 parent 12c255b commit fb993aa
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/gpu/drm/i915/intel_wakeref.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/

#include "intel_runtime_pm.h"
#include "i915_gem.h"
#include "intel_wakeref.h"

static void rpm_get(struct intel_runtime_pm *rpm, struct intel_wakeref *wf)
{
Expand All @@ -17,7 +17,7 @@ static void rpm_put(struct intel_runtime_pm *rpm, struct intel_wakeref *wf)
intel_wakeref_t wakeref = fetch_and_zero(&wf->wakeref);

intel_runtime_pm_put(rpm, wakeref);
GEM_BUG_ON(!wakeref);
INTEL_WAKEREF_BUG_ON(!wakeref);
}

int __intel_wakeref_get_first(struct intel_runtime_pm *rpm,
Expand Down Expand Up @@ -48,6 +48,7 @@ int __intel_wakeref_get_first(struct intel_runtime_pm *rpm,
atomic_inc(&wf->count);
mutex_unlock(&wf->mutex);

INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0);
return 0;
}

Expand Down Expand Up @@ -115,7 +116,7 @@ void intel_wakeref_auto(struct intel_wakeref_auto *wf, unsigned long timeout)
if (!refcount_inc_not_zero(&wf->count)) {
spin_lock_irqsave(&wf->lock, flags);
if (!refcount_inc_not_zero(&wf->count)) {
GEM_BUG_ON(wf->wakeref);
INTEL_WAKEREF_BUG_ON(wf->wakeref);
wf->wakeref = intel_runtime_pm_get_if_in_use(wf->rpm);
refcount_set(&wf->count, 1);
}
Expand All @@ -134,5 +135,5 @@ void intel_wakeref_auto(struct intel_wakeref_auto *wf, unsigned long timeout)
void intel_wakeref_auto_fini(struct intel_wakeref_auto *wf)
{
intel_wakeref_auto(wf, 0);
GEM_BUG_ON(wf->wakeref);
INTEL_WAKEREF_BUG_ON(wf->wakeref);
}
7 changes: 7 additions & 0 deletions drivers/gpu/drm/i915/intel_wakeref.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
#include <linux/stackdepot.h>
#include <linux/timer.h>

#if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
#define INTEL_WAKEREF_BUG_ON(expr) BUG_ON(expr)
#else
#define INTEL_WAKEREF_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
#endif

struct intel_runtime_pm;

typedef depot_stack_handle_t intel_wakeref_t;
Expand Down Expand Up @@ -86,6 +92,7 @@ intel_wakeref_put(struct intel_runtime_pm *rpm,
struct intel_wakeref *wf,
int (*fn)(struct intel_wakeref *wf))
{
INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0);
if (atomic_dec_and_mutex_lock(&wf->count, &wf->mutex))
return __intel_wakeref_put_last(rpm, wf, fn);

Expand Down

0 comments on commit fb993aa

Please sign in to comment.