hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/arm/kernel/perf_callchain.c
....@@ -37,7 +37,7 @@
3737 struct frame_tail buftail;
3838 unsigned long err;
3939
40
- if (!access_ok(VERIFY_READ, tail, sizeof(buftail)))
40
+ if (!access_ok(tail, sizeof(buftail)))
4141 return NULL;
4242
4343 pagefault_disable();
....@@ -62,9 +62,10 @@
6262 void
6363 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
6464 {
65
+ struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
6566 struct frame_tail __user *tail;
6667
67
- if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
68
+ if (guest_cbs && guest_cbs->is_in_guest()) {
6869 /* We don't support guest os callchain now */
6970 return;
7071 }
....@@ -98,9 +99,10 @@
9899 void
99100 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
100101 {
102
+ struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
101103 struct stackframe fr;
102104
103
- if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
105
+ if (guest_cbs && guest_cbs->is_in_guest()) {
104106 /* We don't support guest os callchain now */
105107 return;
106108 }
....@@ -111,18 +113,21 @@
111113
112114 unsigned long perf_instruction_pointer(struct pt_regs *regs)
113115 {
114
- if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
115
- return perf_guest_cbs->get_guest_ip();
116
+ struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
117
+
118
+ if (guest_cbs && guest_cbs->is_in_guest())
119
+ return guest_cbs->get_guest_ip();
116120
117121 return instruction_pointer(regs);
118122 }
119123
120124 unsigned long perf_misc_flags(struct pt_regs *regs)
121125 {
126
+ struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
122127 int misc = 0;
123128
124
- if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
125
- if (perf_guest_cbs->is_user_mode())
129
+ if (guest_cbs && guest_cbs->is_in_guest()) {
130
+ if (guest_cbs->is_user_mode())
126131 misc |= PERF_RECORD_MISC_GUEST_USER;
127132 else
128133 misc |= PERF_RECORD_MISC_GUEST_KERNEL;