[PATCH] ata: use clamp_t macro to avoid sparse warnings

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Harvey Harrison
Date: Wednesday, February 20, 2008 - 10:36 am

Nesting min_t/max_t macros produces many shadowed variable warnings
due to use of __x.  Add a clamp_t macro to linux/kernel.h and use
it in the FIT macro.

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

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 2df44e7..47924ce 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -362,6 +362,15 @@ static inline int __attribute__ ((format (printf, 1, 2))) pr_debug(const char *
 #define max_t(type,x,y) \
 	({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
 
+/*
+ * Clamp a value to within a given range using comparisons of a specified type.
+ */
+#define clamp_t(type,val,min,max) ({ \
+	type __val = (val);	\
+	type __min = (min);	\
+	type __max = (max);	\
+	__val = __val < __min ? __min: __val; \
+	__val > __max ? __max: __val; })
 
 /**
  * container_of - cast a member of a structure out to the containing structure
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 2e098f9..8adc2a0 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -754,7 +754,7 @@ struct ata_timing {
 	unsigned short udma;		/* t2CYCTYP/2 */
 };
 
-#define FIT(v, vmin, vmax)	max_t(short, min_t(short, v, vmax), vmin)
+#define FIT(v, vmin, vmax)	clamp_t(short, v, vmin, vmax)
 
 extern const unsigned long sata_deb_timing_normal[];
 extern const unsigned long sata_deb_timing_hotplug[];
-- 
1.5.4.2.200.g99e75



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] ata: replace macro with static inline in libata.h, Harvey Harrison, (Mon Feb 18, 9:07 am)
[PATCH] ata: use clamp_t macro to avoid sparse warnings, Harvey Harrison, (Wed Feb 20, 10:36 am)