On Thu, Aug 07, 2025 at 02:02:02PM -0300, Luiz Otavio Mello wrote: > The intel_guc_log->relay.lock is currently initialized in > intel_guc_log_init_early(), but it lacks a corresponding destructor, > which can lead to a memory leak. > > This patch replaces the use of mutex_init() with drmm_mutex_init(), > which ensures the lock is properly destroyed when the driver is > unloaded. > > Signed-off-by: Luiz Otavio Mello <luiz.me...@estudante.ufscar.br>
Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > index 7135fdb0ebb4..469173791394 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > @@ -6,6 +6,8 @@ > #include <linux/debugfs.h> > #include <linux/string_helpers.h> > > +#include <drm/drm_managed.h> > + > #include "gt/intel_gt.h" > #include "i915_drv.h" > #include "i915_irq.h" > @@ -512,7 +514,10 @@ static void guc_log_relay_unmap(struct intel_guc_log > *log) > > void intel_guc_log_init_early(struct intel_guc_log *log) > { > - mutex_init(&log->relay.lock); > + struct intel_guc *guc = log_to_guc(log); > + struct drm_i915_private *i915 = guc_to_i915(guc); > + > + drmm_mutex_init(&i915->drm, &log->relay.lock); > INIT_WORK(&log->relay.flush_work, copy_debug_logs_work); > log->relay.started = false; > } > -- > 2.50.1 >