diff options
| author | Dave Airlie <airlied@redhat.com> | 2023-07-21 12:02:31 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2023-07-21 12:14:05 +1000 |
| commit | f4f19c03cfb99b587cf35ff057be97cb98c5d251 (patch) | |
| tree | 0664c11558c76a35afd91b867d11c65eeaac3ebc /drivers/gpu/drm/drm_client_modeset.c | |
| parent | 78e9b217d78e9f69c5699ccff18794ea03be597f (diff) | |
| parent | ea293f823a8805735d9e00124df81a8f448ed1ae (diff) | |
| download | linux-next-f4f19c03cfb99b587cf35ff057be97cb98c5d251.tar.gz linux-next-f4f19c03cfb99b587cf35ff057be97cb98c5d251.zip | |
Merge tag 'drm-misc-fixes-2023-07-20' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
Memory leak fixes in drm/client, memory access/leak fixes for
accel/qaic, another leak fix in dma-buf and three nouveau fixes around
hotplugging.
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Maxime Ripard <mripard@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/fmj5nok7zggux2lcpdtls2iknweba54wfc6o4zxq6i6s3dgi2r@7z3eawwhyhen
Diffstat (limited to 'drivers/gpu/drm/drm_client_modeset.c')
| -rw-r--r-- | drivers/gpu/drm/drm_client_modeset.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 1b12a3c201a3..871e4e2129d6 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -311,6 +311,9 @@ static bool drm_client_target_cloned(struct drm_device *dev, can_clone = true; dmt_mode = drm_mode_find_dmt(dev, 1024, 768, 60, false); + if (!dmt_mode) + goto fail; + for (i = 0; i < connector_count; i++) { if (!enabled[i]) continue; @@ -326,11 +329,13 @@ static bool drm_client_target_cloned(struct drm_device *dev, if (!modes[i]) can_clone = false; } + kfree(dmt_mode); if (can_clone) { DRM_DEBUG_KMS("can clone using 1024x768\n"); return true; } +fail: DRM_INFO("kms: can't enable cloning when we probably wanted to.\n"); return false; } @@ -862,6 +867,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, break; } + kfree(modeset->mode); modeset->mode = drm_mode_duplicate(dev, mode); drm_connector_get(connector); modeset->connectors[modeset->num_connectors++] = connector; |
