Subject: Re: [PATCH 4/7] cxgb4: Add packet queues and packet DMA code

From: Stephen Hemminger <[email-masked]>
Date: Fri, 26 Feb 2010 16:16:03 -0800

On Fri, 26 Feb 2010 16:10:07 -0800
"Dimitrios Michailidis" <[email-masked]> wrote:

> 
> 
> > -----Original Message-----
> > From: Stephen Hemminger [mailto:[email-masked]]
> > Sent: Friday, February 26, 2010 3:58 PM
> > To: Dimitrios Michailidis
> > Cc: [email-masked]
> > Subject: Re: [PATCH 4/7] cxgb4: Add packet queues and packet DMA code
> > 
> > On Fri, 26 Feb 2010 15:35:36 -0800
> > Dimitris Michailidis <[email-masked]> wrote:
> > 
> > > +
> > > +/**
> > > + *	need_skb_unmap - does the platform need unmapping of sk_buffs?
> > > + *
> > > + *	Returns true if the platfrom needs sk_buff unmapping.  The
> compiler
> > > + *	optimizes away unecessary code if this returns true.
> > > + */
> > > +static inline int need_skb_unmap(void)
> > > +{
> > > +	/*
> > > +	 * This structure is used to tell if the platfrom needs buffer
> > > +	 * unmapping by checking if DECLARE_PCI_UNMAP_ADDR defines
> anything.
> > > +	 */
> > > +	struct dummy {
> > > +		DECLARE_PCI_UNMAP_ADDR(addr);
> > > +	};
> > > +
> > > +	return sizeof(struct dummy) != 0;
> > > +}
> > > +
> > 
> > I would prefer one code path and let the compiler decide if unmap
> > should be nop; rather than this kind of trick code.
> 
> I believe this function does not generate any code, the compiler
> statically figures out the result and optimizes any conditionals that
> call it.  What option do you have in mind that would tell the compiler
> if unmap is nop?

Why do you care, let compiler decide.

--