Subject: Re: [PATCH] Xilinx framebuffer device driver - 2nd version

From: Andrei Konovalov <[email-masked]>
Date: Fri, 27 Apr 2007 01:55:20 +0400

Arnd Bergmann wrote:
>>@@ -118,6 +118,12 @@ struct xilinxfb_drvdata {
>>  #define to_xilinxfb_drvdata(_info) \
>>  	container_of(_info, struct xilinxfb_drvdata, info)
>>
>>+#define xilinx_fb_out_be32(driverdata, offset, val) \
>>+	if (driverdata->use_dcr) \
>>+		mtdcr(driverdata->regs_phys + offset, val); \
>>+	else \
>>+		out_be32(driverdata->regs + offset, val)
>>+
>>  static int
>>  xilinx_fb_setcolreg(unsigned regno, unsigned red, unsigned green, unsigned blue,
>>  	unsigned transp, struct fb_info *fbi)
> 
> 
> This should probably be an inline function, or use do { ... } while (0) 
> instead, to make it less error-prone, see
> http://kernelnewbies.org/FAQ/DoWhile0 for an explanation.
> 
> 	Arnd <><

xilinx_fb_out_be32 macro doesn't declare local variables, and is a single "line of code"
in terms of the web page you've referenced. IOW I can't get an example where this macro
would do wrong off the top of my head. Anyway, the do { ... } while (0) is safe and
common, so I'll regenerate the patch to use it.

Thanks a lot for reviewing that stuff!

Best regards,
Andrei