summaryrefslogtreecommitdiffstats
path: root/releases/2.6.39.3/bug.h-add-warn_ratelimit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'releases/2.6.39.3/bug.h-add-warn_ratelimit.patch')
-rw-r--r--releases/2.6.39.3/bug.h-add-warn_ratelimit.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/releases/2.6.39.3/bug.h-add-warn_ratelimit.patch b/releases/2.6.39.3/bug.h-add-warn_ratelimit.patch
new file mode 100644
index 0000000000..5304de8eb5
--- /dev/null
+++ b/releases/2.6.39.3/bug.h-add-warn_ratelimit.patch
@@ -0,0 +1,48 @@
+From ac8da642f31961c5dbc7b6cf4053fc9c78720b05 Mon Sep 17 00:00:00 2001
+From: Joe Perches <joe@perches.com>
+Date: Sat, 21 May 2011 07:48:39 +0000
+Subject: bug.h: Add WARN_RATELIMIT
+
+
+From: Joe Perches <joe@perches.com>
+
+[ Upstream commit b3eec79b0776e5340a3db75b34953977c7e5086e ]
+
+Add a generic mechanism to ratelimit WARN(foo, fmt, ...) messages
+using a hidden per call site static struct ratelimit_state.
+
+Also add an __WARN_RATELIMIT variant to be able to use a specific
+struct ratelimit_state.
+
+Signed-off-by: Joe Perches <joe@perches.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ include/asm-generic/bug.h | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+--- a/include/asm-generic/bug.h
++++ b/include/asm-generic/bug.h
+@@ -165,6 +165,22 @@ extern void warn_slowpath_null(const cha
+ #define WARN_ON_RATELIMIT(condition, state) \
+ WARN_ON((condition) && __ratelimit(state))
+
++#define __WARN_RATELIMIT(condition, state, format...) \
++({ \
++ int rtn = 0; \
++ if (unlikely(__ratelimit(state))) \
++ rtn = WARN(condition, format); \
++ rtn; \
++})
++
++#define WARN_RATELIMIT(condition, format...) \
++({ \
++ static DEFINE_RATELIMIT_STATE(_rs, \
++ DEFAULT_RATELIMIT_INTERVAL, \
++ DEFAULT_RATELIMIT_BURST); \
++ __WARN_RATELIMIT(condition, &_rs, format); \
++})
++
+ /*
+ * WARN_ON_SMP() is for cases that the warning is either
+ * meaningless for !SMP or may even cause failures.