|
@@ -579,7 +579,7 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
|
|
|
{
|
|
|
struct cpu_perf_ibs *pcpu = this_cpu_ptr(perf_ibs->pcpu);
|
|
|
struct perf_event *event = pcpu->event;
|
|
|
- struct hw_perf_event *hwc = &event->hw;
|
|
|
+ struct hw_perf_event *hwc;
|
|
|
struct perf_sample_data data;
|
|
|
struct perf_raw_record raw;
|
|
|
struct pt_regs regs;
|
|
@@ -602,6 +602,10 @@ fail:
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ if (WARN_ON_ONCE(!event))
|
|
|
+ goto fail;
|
|
|
+
|
|
|
+ hwc = &event->hw;
|
|
|
msr = hwc->config_base;
|
|
|
buf = ibs_data.regs;
|
|
|
rdmsrl(msr, *buf);
|