[PATCH] drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer()
Harry Wentland
harry.wentland at amd.com
Tue Nov 14 14:31:00 UTC 2023
On 2023-11-13 15:09, Mario Limonciello wrote:
> When ddc_service_construct() is called, it explicitly checks both the
> link type and whether there is something on the link which will
> dictate whether the pin is marked as hw_supported.
>
> If the pin isn't set or the link is not set (such as from
> unloading/reloading amdgpu in an IGT test) then fail the
> amdgpu_dm_i2c_xfer() call.
>
> Cc: stable at vger.kernel.org
> Fixes: 22676bc500c2 ("drm/amd/display: Fix dmub soft hang for PSR 1")
> Link: https://github.com/fwupd/fwupd/issues/6327
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
Reviewed-by: Harry Wentland <harry.wentland at amd.com>
Harry
> ---
> v1->v2:
> * Fix a memory leak
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index adbeb2c897b5..f6b31c108180 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -7463,6 +7463,9 @@ static int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap,
> int i;
> int result = -EIO;
>
> + if (!ddc_service->ddc_pin || !ddc_service->ddc_pin->hw_info.hw_supported)
> + return result;
> +
> cmd.payloads = kcalloc(num, sizeof(struct i2c_payload), GFP_KERNEL);
>
> if (!cmd.payloads)
More information about the amd-gfx
mailing list