Merge tag 'trace-v6.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[platform/kernel/linux-starfive.git] / kernel / trace / ring_buffer.c
index 3c7cd13..c6f47b6 100644 (file)
@@ -1577,19 +1577,6 @@ static int rb_check_bpage(struct ring_buffer_per_cpu *cpu_buffer,
 }
 
 /**
- * rb_check_list - make sure a pointer to a list has the last bits zero
- */
-static int rb_check_list(struct ring_buffer_per_cpu *cpu_buffer,
-                        struct list_head *list)
-{
-       if (RB_WARN_ON(cpu_buffer, rb_list_head(list->prev) != list->prev))
-               return 1;
-       if (RB_WARN_ON(cpu_buffer, rb_list_head(list->next) != list->next))
-               return 1;
-       return 0;
-}
-
-/**
  * rb_check_pages - integrity check of buffer pages
  * @cpu_buffer: CPU buffer with pages to test
  *
@@ -1598,36 +1585,27 @@ static int rb_check_list(struct ring_buffer_per_cpu *cpu_buffer,
  */
 static int rb_check_pages(struct ring_buffer_per_cpu *cpu_buffer)
 {
-       struct list_head *head = cpu_buffer->pages;
-       struct buffer_page *bpage, *tmp;
+       struct list_head *head = rb_list_head(cpu_buffer->pages);
+       struct list_head *tmp;
 
-       /* Reset the head page if it exists */
-       if (cpu_buffer->head_page)
-               rb_set_head_page(cpu_buffer);
-
-       rb_head_page_deactivate(cpu_buffer);
-
-       if (RB_WARN_ON(cpu_buffer, head->next->prev != head))
-               return -1;
-       if (RB_WARN_ON(cpu_buffer, head->prev->next != head))
+       if (RB_WARN_ON(cpu_buffer,
+                       rb_list_head(rb_list_head(head->next)->prev) != head))
                return -1;
 
-       if (rb_check_list(cpu_buffer, head))
+       if (RB_WARN_ON(cpu_buffer,
+                       rb_list_head(rb_list_head(head->prev)->next) != head))
                return -1;
 
-       list_for_each_entry_safe(bpage, tmp, head, list) {
+       for (tmp = rb_list_head(head->next); tmp != head; tmp = rb_list_head(tmp->next)) {
                if (RB_WARN_ON(cpu_buffer,
-                              bpage->list.next->prev != &bpage->list))
+                               rb_list_head(rb_list_head(tmp->next)->prev) != tmp))
                        return -1;
+
                if (RB_WARN_ON(cpu_buffer,
-                              bpage->list.prev->next != &bpage->list))
-                       return -1;
-               if (rb_check_list(cpu_buffer, &bpage->list))
+                               rb_list_head(rb_list_head(tmp->prev)->next) != tmp))
                        return -1;
        }
 
-       rb_head_page_activate(cpu_buffer);
-
        return 0;
 }