mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-14 23:40:48 +00:00
Move drm_fb_helper_unprepare() from drm_fb_helper_fini() into the
calling fbdev implementation. Avoids a possible stale mutex with
generic fbdev code.
As indicated by its name, drm_fb_helper_prepare() prepares struct
drm_fb_helper before setting up the fbdev support with a call to
drm_fb_helper_init(). In legacy fbdev emulation, this happens next
to each other. If successful, drm_fb_helper_fini() later tear down
the fbdev device and also unprepare via drm_fb_helper_unprepare().
Generic fbdev emulation prepares struct drm_fb_helper immediately
after allocating the instance. It only calls drm_fb_helper_init()
as part of processing a hotplug event. If the hotplug-handling fails,
it runs drm_fb_helper_fini(). This unprepares the fb-helper instance
and the next hotplug event runs on stale data.
Solve this by moving drm_fb_helper_unprepare() from drm_fb_helper_fini()
into the fbdev implementations. Call it right before freeing the
fb-helper instance.
Fixes:
|
||
|---|---|---|
| .. | ||
| armada_510.c | ||
| armada_crtc.c | ||
| armada_crtc.h | ||
| armada_debugfs.c | ||
| armada_drm.h | ||
| armada_drv.c | ||
| armada_fb.c | ||
| armada_fb.h | ||
| armada_fbdev.c | ||
| armada_gem.c | ||
| armada_gem.h | ||
| armada_hw.h | ||
| armada_ioctlP.h | ||
| armada_overlay.c | ||
| armada_plane.c | ||
| armada_plane.h | ||
| armada_trace.c | ||
| armada_trace.h | ||
| Kconfig | ||
| Makefile | ||