[linux-dvb] Re: [PATCH] LGDT3302 Frontend Driver

Ben Dooks ben at trinity.fluff.org
Tue Jun 28 16:44:14 CEST 2005


On Tue, Jun 28, 2005 at 04:24:30PM +0200, Peter Beutner wrote:
> Edgar Toernig schrieb:
> >Michael Krufky wrote:
> >>>Yes but why do you need do {} while(0) stuff ?
> >>>You don't need to declare a new block as you add only a if statement, so
> >>>
> >>>+#define dprintk(args...) if (debug) printk(KERN_DEBUG "lgdt3302: " args)
> >>>
> >>>will be a lot's of cleanner...
> >>
> >>Agreed... I will add make that change.
> >
> >
> >Better not.  Code like this will brake horrible without the do-while:
> >
> >	if (foo)
> >		dprintk(...);
> >	else
> >		bar();
> >
> I dont see why the code you posted above will break with dprintk defined 
> like this:
> #define dprintk(args...) if (debug) printk(KERN_DEBUG "lgdt3302: " args)
> 
> Imo:
> 
> if(foo)
> 	if (debug) printk(KERN_DEBUG "lgdt3302: " args);
> else
> 	bar();
> 
> should work like intended.

The else will be part of the if (debug), not the if (foo) as
intended. This means that changing the dprintk macro would
end up breaking a number of things. Best to avoid these problems
in the first place.

-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.





More information about the linux-dvb mailing list