Messages in this thread Patch in this message | | | From | Rob Clark <> | Subject | [PATCH] drm/crtc: fix uninitialized variable use even harder | Date | Mon, 12 Feb 2024 13:55:34 -0800 |
| |
From: Rob Clark <robdclark@chromium.org>
DRM_MODESET_LOCK_ALL_BEGIN() has a hidden trap-door (aka retry loop), which means we can't rely too much on variable initializers.
Fixes: 6e455f5dcdd1 ("drm/crtc: fix uninitialized variable use") Signed-off-by: Rob Clark <robdclark@chromium.org> --- I have mixed feelings about DRM_MODESET_LOCK_ALL_BEGIN() (and friends) magic. On one hand it simplifies the deadlock/back dance. OTOH it conceals a nasty sharp edge. Maybe it is better to have the complicated restart path a bit more explicit, like it was originally.
drivers/gpu/drm/drm_crtc.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index cb90e70d85e8..65f9f66933bb 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -904,6 +904,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, connector_set = NULL; fb = NULL; mode = NULL; + num_connectors = 0; DRM_MODESET_LOCK_ALL_END(dev, ctx, ret); -- 2.43.0
| |