forked from Minki/linux
drm/i915/pmu: Keep a reference to module while active
While a perf event is open, keep a reference to the module so we don't remove the driver internals mid-sampling. Testcase: igt/perf_pmu/module-unload Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: stable@vger.kernel.org Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200430183324.23984-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
16e8745967
commit
3b55cdeb8f
@ -442,6 +442,7 @@ static u64 count_interrupts(struct drm_i915_private *i915)
|
||||
static void i915_pmu_event_destroy(struct perf_event *event)
|
||||
{
|
||||
WARN_ON(event->parent);
|
||||
module_put(THIS_MODULE);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -533,8 +534,10 @@ static int i915_pmu_event_init(struct perf_event *event)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!event->parent)
|
||||
if (!event->parent) {
|
||||
__module_get(THIS_MODULE);
|
||||
event->destroy = i915_pmu_event_destroy;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user