|
@@ -280,6 +280,8 @@ EXPORT_SYMBOL_GPL(ring_buffer_event_data);
|
|
/* Missed count stored at end */
|
|
/* Missed count stored at end */
|
|
#define RB_MISSED_STORED (1 << 30)
|
|
#define RB_MISSED_STORED (1 << 30)
|
|
|
|
|
|
|
|
+#define RB_MISSED_FLAGS (RB_MISSED_EVENTS|RB_MISSED_STORED)
|
|
|
|
+
|
|
struct buffer_data_page {
|
|
struct buffer_data_page {
|
|
u64 time_stamp; /* page time stamp */
|
|
u64 time_stamp; /* page time stamp */
|
|
local_t commit; /* write committed index */
|
|
local_t commit; /* write committed index */
|
|
@@ -331,7 +333,9 @@ static void rb_init_page(struct buffer_data_page *bpage)
|
|
*/
|
|
*/
|
|
size_t ring_buffer_page_len(void *page)
|
|
size_t ring_buffer_page_len(void *page)
|
|
{
|
|
{
|
|
- return local_read(&((struct buffer_data_page *)page)->commit)
|
|
|
|
|
|
+ struct buffer_data_page *bpage = page;
|
|
|
|
+
|
|
|
|
+ return (local_read(&bpage->commit) & ~RB_MISSED_FLAGS)
|
|
+ BUF_PAGE_HDR_SIZE;
|
|
+ BUF_PAGE_HDR_SIZE;
|
|
}
|
|
}
|
|
|
|
|