[PATCH] cxl: Fix ambiguous else warnings

Michael Ellerman mpe at ellerman.id.au
Mon Aug 3 10:43:24 AEST 2015


On Mon, 2015-08-03 at 10:36 +1000, Daniel Axtens wrote:
> Hi Andreas,
> 
> On Fri, 2015-07-31 at 11:16 +0200, Andreas Schwab wrote:
> > Daniel Axtens <dja at axtens.net> writes:
> > 
> > > Every time I build cxl I see the following warnings:
> > >
> > > /scratch/dja/linux-capi/drivers/misc/cxl/pci.c: In function ‘sanitise_afu_regs’:
> > > /scratch/dja/linux-capi/drivers/misc/cxl/pci.c:712:6: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wparentheses]
> > >    if (reg & CXL_PSL_DSISR_TRANS)
> > >       ^
> > > /scratch/dja/linux-capi/drivers/misc/cxl/irq.c: In function ‘fail_psl_irq’:
> > > /scratch/dja/linux-capi/drivers/misc/cxl/irq.c:184:5: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wparentheses]
> > >   if (irq_info->dsisr & CXL_PSL_DSISR_TRANS)
> > >      ^
> > 
> > Why are they ambigous?  Why doesn't cxl_p2n_write(afu, CXL_PSL_TFC_An,
> > CXL_PSL_TFC_An_AE) expand to a proper statement?
> > 
> > #define cxl_p2n_write(afu, reg, val) \
> > 	out_be64(_cxl_p2n_addr(afu, reg), val)
> > 
> 
> I realised that I started seeing this when I was working on my EEH
> patches, which change the definition to:
> 
> #define cxl_p2n_write(afu, reg, val) \
> 	if (cxl_adapter_link_ok(afu->adapter)) \
> 		out_be64(_cxl_p2n_addr(afu, reg), val)

This should be a static inline, not a #define.

cheers




More information about the Linuxppc-dev mailing list