On Tue, 17 Jan 2017, Shivappa Vikas wrote: > On Tue, 17 Jan 2017, Thomas Gleixner wrote: > > > On Fri, 6 Jan 2017, Vikas Shivappa wrote: > > > @@ -741,7 +741,13 @@ static int intel_cqm_event_init(struct perf_event > > > *event) > > > INIT_LIST_HEAD(&event->hw.cqm_group_entry); > > > INIT_LIST_HEAD(&event->hw.cqm_groups_entry); > > > > > > - event->destroy = intel_cqm_event_destroy; > > > > I missed this in the first round, but tripped over it when looking at one > > of the follow up patches. > > > > How is that supposed to work? > > > > 1) intel_cqm_event_destroy() is still in the code and unused which emits a > > compiler warning, but that can obviously be ignored for a good measure. > > > > 2) How would any testing of this mess actually work? > > > > Not all all. Nothing ever tears down an event. So you just leave > > everything hanging around probably with dangling pointers left and > > right. > > The terminate is defined in next patch.
I know and that does not make it any better. It's broken, end of story. Thanks, tglx