All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harvey Harrison <harvey.harrison@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jeff Garzik <jeff@garzik.org>,
	linux-ide <linux-ide@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 5/11v2] ata: replace macro with static inline in libata.h
Date: Fri, 15 Feb 2008 14:46:14 -0800	[thread overview]
Message-ID: <1203115574.30938.6.camel@brick> (raw)
In-Reply-To: <20080215223036.2111edd5@core>

On Fri, 2008-02-15 at 22:30 +0000, Alan Cox wrote:
> On Fri, 15 Feb 2008 14:06:55 -0800
> Harvey Harrison <harvey.harrison@gmail.com> wrote:
> 
> > Move to using a static inline which will force the same typechecking
> > that min_t/max_t do (in this case, short).  As a bonus, avoid a ton
> > of sparse warnings like:
> > 
> > drivers/ata/pata_ali.c:176:14: warning: symbol '__x' shadows an earlier one
> > drivers/ata/pata_ali.c:176:14: originally declared here
> > 
> > Due to nesting min_t macro inside max_t macro which both use a __x
> > identifier internally.
> 
> NAK. This is a sparse bug, fix sparse.

Yes, fair enough, but that's not all the patch is about.

1) it's using a max_t and min_t to force the comparisons as shorts, why
not just make it a static inline?

2) the static inline is a little clearer about the intent here.

3) the sparse warnings are entirely secondary (and technically correct
when the macros expand, __x is shadowed)

4) I may be mistaken, but I thought then when something can be written
as a static inline instead of a macro it was preferred. At least I've
seen akpm say so, but I'll let him speak for himself (added to CC:)

Cheers,

Harvey

From: Harvey Harrison <harvey.harrison@gmail.com>
Subject: [PATCH] ata: replace macro with static inline in libata.h

Avoid a metric ton of sparse warnings like:
drivers/ata/pata_ali.c:176:14: warning: symbol '__x' shadows an earlier one
drivers/ata/pata_ali.c:176:14: originally declared here

Due to nesting min_t macro inside max_t macro which both use a __x
identifier internally.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
---
 include/linux/libata.h |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/include/linux/libata.h b/include/linux/libata.h
index bc5a8d0..b5590fb 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -764,7 +764,14 @@ struct ata_timing {
 	unsigned short udma;		/* t2CYCTYP/2 */
 };
 
-#define FIT(v, vmin, vmax)	max_t(short, min_t(short, v, vmax), vmin)
+static inline short FIT(short v, short vmin, short vmax)
+{
+	if (v >= vmax)
+		return vmax;
+	if (v <= vmin)
+		return vmin;
+	return v;
+}
 
 extern const unsigned long sata_deb_timing_normal[];
 extern const unsigned long sata_deb_timing_hotplug[];
-- 
1.5.4.1.1278.gc75be






  reply	other threads:[~2008-02-15 22:46 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-15 22:06 [PATCH 5/11v2] ata: replace macro with static inline in libata.h Harvey Harrison
2008-02-15 22:30 ` Alan Cox
2008-02-15 22:46   ` Harvey Harrison [this message]
2008-02-15 22:53     ` Alan Cox
2008-02-15 23:08       ` Harvey Harrison
2008-02-16  0:05         ` Alan Cox
2008-02-16  0:23           ` Harvey Harrison
2008-02-16  0:36             ` Harvey Harrison

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=1203115574.30938.6.camel@brick \
    --to=harvey.harrison@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=jeff@garzik.org \
    --cc=linux-ide@vger.kernel.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.