diff options
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.patch | 48 |
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. |