|
 |
5b7cf4 |
From 86022cd76d9391f3c93553d1c76a444b2143a4e8 Mon Sep 17 00:00:00 2001
|
|
 |
5b7cf4 |
From: Lianbo Jiang <lijiang@redhat.com>
|
|
 |
5b7cf4 |
Date: Wed, 13 Jul 2022 22:27:33 +0800
|
|
 |
5b7cf4 |
Subject: [PATCH 2/3] Fix for the invalid ring_buffer issue
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
Kernel commit e028157062b9 ("[kernel] perf: Make struct ring_buffer
|
|
 |
5b7cf4 |
less ambiguous") renamed the struct ring_buffer to struct perf_buffer,
|
|
 |
5b7cf4 |
which cause the following failure:
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
[0] invalid ring_buffer
|
|
 |
5b7cf4 |
[1] invalid ring_buffer
|
|
 |
5b7cf4 |
[2] invalid ring_buffer
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
|
|
 |
5b7cf4 |
---
|
|
 |
5b7cf4 |
ptdump.c | 45 +++++++++++++++++++++++++++++++--------------
|
|
 |
5b7cf4 |
1 file changed, 31 insertions(+), 14 deletions(-)
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
diff --git a/ptdump.c b/ptdump.c
|
|
 |
5b7cf4 |
index 736e1c8cddaf..54e4391739e3 100644
|
|
 |
5b7cf4 |
--- a/ptdump.c
|
|
 |
5b7cf4 |
+++ b/ptdump.c
|
|
 |
5b7cf4 |
@@ -114,25 +114,42 @@ int init_pt_info(int cpu)
|
|
 |
5b7cf4 |
struct_ring_buffer);
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
/* symbol access check */
|
|
 |
5b7cf4 |
- if (STRUCT_EXISTS("ring_buffer") &&
|
|
 |
5b7cf4 |
- !MEMBER_EXISTS("ring_buffer", "aux_pages")) {
|
|
 |
5b7cf4 |
- fprintf(fp, "[%d] invalid ring_buffer\n", cpu);
|
|
 |
5b7cf4 |
+ if ((STRUCT_EXISTS("ring_buffer") &&
|
|
 |
5b7cf4 |
+ !MEMBER_EXISTS("ring_buffer", "aux_pages")) ||
|
|
 |
5b7cf4 |
+ (STRUCT_EXISTS("perf_buffer") &&
|
|
 |
5b7cf4 |
+ !MEMBER_EXISTS("perf_buffer", "aux_pages"))) {
|
|
 |
5b7cf4 |
+ fprintf(fp, "[%d] invalid {ring|perf}_buffer\n", cpu);
|
|
 |
5b7cf4 |
return FALSE;
|
|
 |
5b7cf4 |
}
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
- /* array of struct pages for pt buffer */
|
|
 |
5b7cf4 |
- if(!get_member(struct_ring_buffer, "ring_buffer", "aux_pages",
|
|
 |
5b7cf4 |
- &aux_pages))
|
|
 |
5b7cf4 |
- return FALSE;
|
|
 |
5b7cf4 |
+ if (STRUCT_EXISTS("ring_buffer")) {
|
|
 |
5b7cf4 |
+ /* array of struct pages for pt buffer */
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "ring_buffer", "aux_pages",
|
|
 |
5b7cf4 |
+ &aux_pages))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
- /* number of pages */
|
|
 |
5b7cf4 |
- if(!get_member(struct_ring_buffer, "ring_buffer", "aux_nr_pages",
|
|
 |
5b7cf4 |
- &aux_nr_pages))
|
|
 |
5b7cf4 |
- return FALSE;
|
|
 |
5b7cf4 |
+ /* number of pages */
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "ring_buffer", "aux_nr_pages",
|
|
 |
5b7cf4 |
+ &aux_nr_pages))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
+
|
|
 |
5b7cf4 |
+ /* private data (struct pt_buffer) */
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "ring_buffer", "aux_priv",
|
|
 |
5b7cf4 |
+ &aux_priv))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
+ } else if (STRUCT_EXISTS("perf_buffer")) {
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "perf_buffer", "aux_pages",
|
|
 |
5b7cf4 |
+ &aux_pages))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
- /* private data (struct pt_buffer) */
|
|
 |
5b7cf4 |
- if(!get_member(struct_ring_buffer, "ring_buffer", "aux_priv",
|
|
 |
5b7cf4 |
- &aux_priv))
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "perf_buffer", "aux_nr_pages",
|
|
 |
5b7cf4 |
+ &aux_nr_pages))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
+
|
|
 |
5b7cf4 |
+ if(!get_member(struct_ring_buffer, "perf_buffer", "aux_priv",
|
|
 |
5b7cf4 |
+ &aux_priv))
|
|
 |
5b7cf4 |
+ return FALSE;
|
|
 |
5b7cf4 |
+ } else
|
|
 |
5b7cf4 |
return FALSE;
|
|
 |
5b7cf4 |
|
|
 |
5b7cf4 |
if (!aux_nr_pages) {
|
|
 |
5b7cf4 |
--
|
|
 |
5b7cf4 |
2.31.1
|
|
 |
5b7cf4 |
|