Re: tty_init_dev: 24 callbacks suppressed

From: Jiri Slaby
Date: Fri Oct 05 2012 - 07:16:59 EST


CCing Joe.

On 10/04/2012 03:11 PM, Markus Trippelsdorf wrote:
> On 2012.10.04 at 14:40 +0200, Borislav Petkov wrote:
>> On Thu, Oct 04, 2012 at 01:51:57PM +0200, Markus Trippelsdorf wrote:
>>> diff --git a/include/linux/ratelimit.h b/include/linux/ratelimit.h
>>> index e11ccb4..d8de255 100644
>>> --- a/include/linux/ratelimit.h
>>> +++ b/include/linux/ratelimit.h
>>> @@ -46,20 +46,17 @@ extern int ___ratelimit(struct ratelimit_state *rs, const char *func);
>>> #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...) \
>>> +#define WARN_RATELIMIT(condition, fmt, ...) \
>>> ({ \
>>> static DEFINE_RATELIMIT_STATE(_rs, \
>>> DEFAULT_RATELIMIT_INTERVAL, \
>>> DEFAULT_RATELIMIT_BURST); \
>>> - __WARN_RATELIMIT(condition, &_rs, format); \
>>> + int rtn = !!(condition); \
>>> + \
>>> + if (unlikely(rtn && __ratelimit(&_rs))) \
>>> + WARN(rtn, fmt, ##__VA_ARGS__); \
>>> + \
>>> + rtn; \
>>> })
>>
>> Aha, I see it. We need to look at the condition before the __ratelimit,
>> otherwise we WARN unnecessarily, good catch.
>>
>>> #else
>>> @@ -67,15 +64,9 @@ extern int ___ratelimit(struct ratelimit_state *rs, const char *func);
>>> #define WARN_ON_RATELIMIT(condition, state) \
>>> WARN_ON(condition)
>>>
>>> -#define __WARN_RATELIMIT(condition, state, format...) \
>>> -({ \
>>> - int rtn = WARN(condition, format); \
>>> - rtn; \
>>> -})
>>> -
>>> -#define WARN_RATELIMIT(condition, format...) \
>>> +#define WARN_RATELIMIT(condition, fmt, ...) \
>>
>> ... except this change is unrelated and unneeded - there's enough room
>> in 80 cols to leave it as "format" instead of shortening it.
>>
>> Other than that:
>>
>> Acked-and-tested-by: Borislav Petkov <borislav.petkov@xxxxxxx>
>
> I'll let Jiri handle this :). It's his patch anyway.

Actually this is Joe's version of the patch. Joe, people started hitting
the bug [1]. Could you resend your patch?

[1] https://patchwork.kernel.org/patch/1339221/

BTW what scares me that nobody noticed that bug until this is in the
Linus's tree. Do people use -next at all or am I the only one user? (I
didn't hit it as I have the patch in my local queue.)

thanks,
--
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/