ring-buffer: Put back the length if crossed page with add_timestamp
Commitfcc742eaad
"ring-buffer: Add event descriptor to simplify passing data" added a descriptor that holds various data instead of passing around several variables through parameters. The problem was that one of the parameters was modified in a function and the code was designed not to have an effect on that modified parameter. Now that the parameter is a descriptor and any modifications to it are non-volatile, the size of the data could be unnecessarily expanded. Remove the extra space added if a timestamp was added and the event went across the page. Cc: stable@vger.kernel.org # 4.3+ Fixes:fcc742eaad
"ring-buffer: Add event descriptor to simplify passing data" Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Родитель
b81f472a20
Коммит
bd1b7cd360
|
@ -2797,8 +2797,11 @@ rb_reserve_next_event(struct ring_buffer *buffer,
|
||||||
|
|
||||||
event = __rb_reserve_next(cpu_buffer, &info);
|
event = __rb_reserve_next(cpu_buffer, &info);
|
||||||
|
|
||||||
if (unlikely(PTR_ERR(event) == -EAGAIN))
|
if (unlikely(PTR_ERR(event) == -EAGAIN)) {
|
||||||
|
if (info.add_timestamp)
|
||||||
|
info.length -= RB_LEN_TIME_EXTEND;
|
||||||
goto again;
|
goto again;
|
||||||
|
}
|
||||||
|
|
||||||
if (!event)
|
if (!event)
|
||||||
goto out_fail;
|
goto out_fail;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче