From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 4/4] drm/i915: fewer warning patch (temporary) Date: Mon, 11 Apr 2011 18:01:19 -0700 Message-ID: <1302570079-17032-5-git-send-email-ben@bwidawsk.net> References: <1302570079-17032-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 7FBBF9E791 for ; Mon, 11 Apr 2011 18:01:30 -0700 (PDT) In-Reply-To: <1302570079-17032-1-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org This patch may help mask some of the warnings. Because it's only a requirement to hold struct_mutex to obtain a reference, it is acceptable from a hardware perspective to not hold struct_mutex if there is already a reference. However, it's still extremely dangerous since there is no real synchronization with the reference count (it could change right after our check). This should only be used by developers who want to debug some of the warnings, but want to deal with a possibly smaller set of warnings to start with. It should not go upstream. Signed-off-by: Ben Widawsky --- drivers/gpu/drm/i915/i915_drv.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 0894e9f..d5748ba 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -290,7 +290,8 @@ void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv) * The other option is to introduce a new forcewake lock which must be * acquired prior to any register read. */ - WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex)); + WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex) && + !dev_priv->forcewake_count); if (dev_priv->forcewake_count++ == 0) __gen6_gt_force_wake_get(dev_priv); @@ -307,7 +308,8 @@ void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv) /* * See gen6_gt_force_wake_get() */ - WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex)); + WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex) && + !dev_priv->forcewake_count); if (--dev_priv->forcewake_count == 0) __gen6_gt_force_wake_put(dev_priv); -- 1.7.3.4