[Intel-gfx] [PATCH] drm/i915/pmu: Keep a reference to module while active
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri May 1 08:14:44 UTC 2020
On 30/04/2020 19:33, Chris Wilson wrote:
> 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 at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: stable at vger.kernel.org
> ---
> drivers/gpu/drm/i915/i915_pmu.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
> index 83c6a8ccd2cb..e991a707bdb7 100644
> --- a/drivers/gpu/drm/i915/i915_pmu.c
> +++ b/drivers/gpu/drm/i915/i915_pmu.c
> @@ -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;
> }
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list