All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Daniel Vetter <daniel@ffwll.ch>, Dave Gordon <david.s.gordon@intel.com>
Cc: Intel graphics driver community testing & development
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH v3 1/2] drm/i915: Simplify _STATE_ debug macros
Date: Tue, 22 Dec 2015 10:41:55 +0200	[thread overview]
Message-ID: <1450773715.5174.3.camel@linux.intel.com> (raw)
In-Reply-To: <20151221134132.GW30437@phenom.ffwll.local>

On ma, 2015-12-21 at 14:41 +0100, Daniel Vetter wrote:
> On Mon, Dec 21, 2015 at 11:53:52AM +0000, Dave Gordon wrote:
> > On 21/12/15 08:11, Joonas Lahtinen wrote:
> > > On pe, 2015-12-18 at 16:18 +0000, Dave Gordon wrote:
> > > > On 18/12/15 12:27, Joonas Lahtinen wrote:
> > > > > Take advantage of WARN return value to simplify the flow.
> > > > > 
> > > > > Cc: Rob Clark <robdclark@gmail.com>
> > > > > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> > > > > Reported-by: Chris Wilson <chris@chris-wilson.co.uk>
> > > > > Signed-off-by: Joonas Lahtinen <
> > > > > joonas.lahtinen@linux.intel.com>
> > > > > ---
> > > > >   drivers/gpu/drm/i915/i915_drv.h | 15 +++++----------
> > > > >   1 file changed, 5 insertions(+), 10 deletions(-)
> > > > > 
> > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > > > > b/drivers/gpu/drm/i915/i915_drv.h
> > > > > index 1d28d90..5a5a3e0 100644
> > > > > --- a/drivers/gpu/drm/i915/i915_drv.h
> > > > > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > > > > @@ -87,23 +87,18 @@
> > > > >    */
> > > > >   #define I915_STATE_WARN(condition, format...) ({		
> > > > > 	
> > > > > \
> > > > >   	int __ret_warn_on = !!(condition);			
> > > > > 	\
> > > > > -	if (unlikely(__ret_warn_on)) {			
> > > > > 	
> > > > > 	\
> > > > > -		if (i915.verbose_state_checks)		
> > > > > 	
> > > > > 	\
> > > > > -			WARN(1, format);			
> > > > > 	
> > > > > \
> > > > > -		else 					
> > > > > 	
> > > > > 	\
> > > > > +	if (unlikely(__ret_warn_on))				
> > > > > 	\
> > > > > +		if (!WARN(i915.verbose_state_checks,
> > > > > format))	
> > > > > 	\
> > > > >   			DRM_ERROR(format);			
> > > > > 	\
> > > > > -	}							
> > > > > 	
> > > > > \
> > > > >   	unlikely(__ret_warn_on);				
> > > > > 	
> > > > > \
> > > > >   })
> > > > > 
> > > > >   #define I915_STATE_WARN_ON(condition) ({			
> > > > > 	
> > > > > \
> > > > >   	int __ret_warn_on = !!(condition);			
> > > > > 	\
> > > > > -	if (unlikely(__ret_warn_on)) {			
> > > > > 	
> > > > > 	\
> > > > > -		if (i915.verbose_state_checks)		
> > > > > 	
> > > > > 	\
> > > > > -			WARN(1, "WARN_ON(" #condition
> > > > > ")\n");	
> > > > > 	\
> > > > > -		else 					
> > > > > 	
> > > > > 	\
> > > > > +	if (unlikely(__ret_warn_on))				
> > > > > 	\
> > > > > +		if (!WARN(i915.verbose_state_checks,		
> > > > > 	\
> > > > > +			  "WARN_ON(" #condition ")\n"))	
> > > > > 	
> > > > > 	\
> > > > >   			DRM_ERROR("WARN_ON(" #condition
> > > > > ")\n");	
> > > > > 	\
> > > > 
> > > > These last two lines still have the text of the condition as
> > > > part of
> > > > a
> > > > format string :(
> > > > 
> > > > For compile-testing, you might want to change:
> > > > 
> > > >    static void lpt_bend_clkout_dp(struct drm_i915_private
> > > > *dev_priv
> > > >    ...
> > > >      if (WARN_ON(steps % 5 != 0))
> > > >        return;
> > > > 
> > > > to use I915_STATE_WARN_ON() instead of WARN_ON, then you should
> > > > get a
> > > > compile-time warning if the '%' ends up in the format string.
> > > > 
> > > 
> > > This is just a patch to convert the old macros to different order
> > > before changing them. The way of constructing the strings is
> > > intact.
> > > 
> > > Regards, Joonas
> > 
> > Yes, I agree, you didn't break them -- they were already wrong!
> 
> Yeah I think it makes sense to fix that. I'll wait for v4.

Ok, to be perfectly clear; This is patch 1/2, which does as the commit
message specifies, it simplifies the function flow, patch 2/2 of the
series changes the string construction and addresses the mentioned
problem. Sorry for being little bit unclear about that on the first
comment.

Regards, Joonas

> -Daniel
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-12-22  8:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-18 12:27 [PATCH v3 0/2] Optimize WARN_ON macros Joonas Lahtinen
2015-12-18 12:27 ` [PATCH v3 1/2] drm/i915: Simplify _STATE_ debug macros Joonas Lahtinen
2015-12-18 16:18   ` Dave Gordon
2015-12-21  8:11     ` Joonas Lahtinen
2015-12-21 11:53       ` Dave Gordon
2015-12-21 13:41         ` Daniel Vetter
2015-12-22  8:41           ` Joonas Lahtinen [this message]
2015-12-18 12:27 ` [PATCH v3 2/2] drm/i915: Compile-time concatenate WARN_ON macro strings Joonas Lahtinen
2015-12-22  9:03   ` Daniel Vetter
2015-12-18 13:20 ` ✗ warning: Fi.CI.BAT Patchwork
2015-12-18 14:00 ` Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450773715.5174.3.camel@linux.intel.com \
    --to=joonas.lahtinen@linux.intel.com \
    --cc=daniel@ffwll.ch \
    --cc=david.s.gordon@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.