Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a39a357c authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm: Make drm_fb_unregister/remove accept NULL fb



These functions are used by drivers to release fbdev emulation
buffers. We need to make them resilient to NULL pointers to
make the fbdev compile/runtime knobs not cause Oopses on module
unload.

Cc: Archit Taneja <architt@codeaurora.org>
Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent b7bdf0a8
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -538,7 +538,12 @@ EXPORT_SYMBOL(drm_framebuffer_reference);
 */
void drm_framebuffer_unregister_private(struct drm_framebuffer *fb)
{
	struct drm_device *dev = fb->dev;
	struct drm_device *dev;

	if (!fb)
		return;

	dev = fb->dev;

	mutex_lock(&dev->mode_config.fb_lock);
	/* Mark fb as reaped and drop idr ref. */
@@ -589,12 +594,17 @@ EXPORT_SYMBOL(drm_framebuffer_cleanup);
 */
void drm_framebuffer_remove(struct drm_framebuffer *fb)
{
	struct drm_device *dev = fb->dev;
	struct drm_device *dev;
	struct drm_crtc *crtc;
	struct drm_plane *plane;
	struct drm_mode_set set;
	int ret;

	if (!fb)
		return;

	dev = fb->dev;

	WARN_ON(!list_empty(&fb->filp_head));

	/*