From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Shuicheng Lin <shuicheng.lin@intel.com>
Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
Jani Nikula <jani.nikula@intel.com>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [PATCH v2] drm/i915/dp: Fix memory leak in parse_lfp_panel_dtd()
Date: Thu, 17 Oct 2024 14:46:16 +0300 [thread overview]
Message-ID: <ZxD5COw3IjfOvxia@intel.com> (raw)
In-Reply-To: <20241016150154.1466131-1-shuicheng.lin@intel.com>
On Wed, Oct 16, 2024 at 03:01:54PM +0000, Shuicheng Lin wrote:
> The function parse_lfp_panel_dtd() is called when the driver
> attempts to initialize the eDP connector, and it allocates memory,
> which is recorded in panel->vbt.lfp_vbt_mode. However, since no
> eDP panel is connected, the driver fails at intel_edp_init_dpcd()
> and follows the failure path. Unfortunately, the allocated memory
> is not freed in this case.
>
> To fix this issue, free the memory in the failure path.
>
> leak info from kmemleak:
> "
> unreferenced object 0xffff8881252f8800 (size 128):
> comm "systemd-udevd", pid 192, jiffies 4294896880
> hex dump (first 32 bytes):
> e8 fd 00 00 00 04 18 04 a0 04 40 05 00 00 00 03 ..........@.....
> 03 03 09 03 26 03 00 00 0a 00 00 00 00 00 00 00 ....&...........
> backtrace (crc 7448f6b4):
> [<ffffffff82475c9b>] kmemleak_alloc+0x4b/0x80
> [<ffffffff814bb50e>] __kmalloc_cache_noprof+0x2be/0x390
> [<ffffffffa069862c>] intel_bios_init_panel+0x1c4c/0x2720 [xe]
> [<ffffffffa0699123>] intel_bios_init_panel_early+0x13/0x20 [xe]
> [<ffffffffa06fceb9>] intel_dp_init_connector+0x2f9/0x1080 [xe]
> [<ffffffffa06c370a>] intel_ddi_init+0xbba/0xf50 [xe]
> [<ffffffffa069b906>] intel_bios_for_each_encoder+0x36/0x60 [xe]
> [<ffffffffa06d7bd6>] intel_setup_outputs+0x206/0x450 [xe]
> [<ffffffffa06dad33>] intel_display_driver_probe_nogem+0x163/0x1f0 [xe]
> [<ffffffffa0680fc7>] xe_display_init_noaccel+0x27/0x70 [xe]
> [<ffffffffa05b30d6>] xe_device_probe+0x806/0x9a0 [xe]
> [<ffffffffa0612f0f>] xe_pci_probe+0x31f/0x590 [xe]
> [<ffffffff81b41718>] local_pci_probe+0x48/0xb0
> [<ffffffff81b432c8>] pci_device_probe+0xc8/0x280
> [<ffffffff81d5dde8>] really_probe+0xf8/0x390
> [<ffffffff81d5e11a>] __driver_probe_device+0x8a/0x170
> "
>
> v2 (Jani):
> -use intel_bios_fini_panel() to pair with intel_bios_init_panel_early()
>
> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Applied to drm-intel-next. Thanks.
> ---
> drivers/gpu/drm/i915/display/intel_dp.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 90fa73575feb..7141e3ca0d83 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -6801,6 +6801,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
>
> out_vdd_off:
> intel_pps_vdd_off_sync(intel_dp);
> + intel_bios_fini_panel(&intel_connector->panel);
>
> return false;
> }
> --
> 2.25.1
--
Ville Syrjälä
Intel
prev parent reply other threads:[~2024-10-17 11:46 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-16 15:01 [PATCH v2] drm/i915/dp: Fix memory leak in parse_lfp_panel_dtd() Shuicheng Lin
2024-10-16 15:56 ` ✓ CI.Patch_applied: success for drm/i915/dp: Fix memory leak in parse_lfp_panel_dtd() (rev2) Patchwork
2024-10-16 15:56 ` ✓ CI.checkpatch: " Patchwork
2024-10-16 15:58 ` ✓ CI.KUnit: " Patchwork
2024-10-16 16:09 ` ✓ CI.Build: " Patchwork
2024-10-16 16:11 ` ✓ CI.Hooks: " Patchwork
2024-10-16 16:13 ` ✗ CI.checksparse: warning " Patchwork
2024-10-16 16:36 ` ✓ CI.BAT: success " Patchwork
2024-10-16 20:27 ` ✓ Fi.CI.BAT: " Patchwork
2024-10-16 23:00 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-10-17 8:07 ` ✗ CI.FULL: " Patchwork
2024-10-17 11:46 ` Ville Syrjälä [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZxD5COw3IjfOvxia@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=shuicheng.lin@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.