|
@@ -117,7 +117,13 @@ rb_event_length(struct ring_buffer_event *event)
|
|
*/
|
|
*/
|
|
unsigned ring_buffer_event_length(struct ring_buffer_event *event)
|
|
unsigned ring_buffer_event_length(struct ring_buffer_event *event)
|
|
{
|
|
{
|
|
- return rb_event_length(event);
|
|
|
|
|
|
+ unsigned length = rb_event_length(event);
|
|
|
|
+ if (event->type != RINGBUF_TYPE_DATA)
|
|
|
|
+ return length;
|
|
|
|
+ length -= RB_EVNT_HDR_SIZE;
|
|
|
|
+ if (length > RB_MAX_SMALL_DATA + sizeof(event->array[0]))
|
|
|
|
+ length -= sizeof(event->array[0]);
|
|
|
|
+ return length;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(ring_buffer_event_length);
|
|
EXPORT_SYMBOL_GPL(ring_buffer_event_length);
|
|
|
|
|