Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/fb-helper: generic: Call drm_client_add() after setup is done

Hotplug can happen while drm_fbdev_generic_setup() is running so move
drm_client_add() call after setup is done to avoid
drm_fbdev_client_hotplug() running in two threads at the same time.

Fixes: 9060d7f49376 ("drm/fb-helper: Finish the generic fbdev emulation")
Cc: stable@vger.kernel.org
Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190401141358.25309-1-noralf@tronnes.org

+2 -2
+2 -2
drivers/gpu/drm/drm_fb_helper.c
··· 3312 3312 return ret; 3313 3313 } 3314 3314 3315 - drm_client_add(&fb_helper->client); 3316 - 3317 3315 if (!preferred_bpp) 3318 3316 preferred_bpp = dev->mode_config.preferred_depth; 3319 3317 if (!preferred_bpp) ··· 3321 3323 ret = drm_fbdev_client_hotplug(&fb_helper->client); 3322 3324 if (ret) 3323 3325 DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret); 3326 + 3327 + drm_client_add(&fb_helper->client); 3324 3328 3325 3329 return 0; 3326 3330 }