Re: [PATCH v2] fbdev: Make fb_release() return -ENODEV if fbdev was unregistered
From: Daniel Vetter <hidden>
Date: 2022-05-04 09:49:37
Also in:
dri-devel, lkml
On Tue, May 03, 2022 at 05:28:09PM +0200, Javier Martinez Canillas wrote:
On 5/2/22 15:50, Javier Martinez Canillas wrote:quoted
A reference to the framebuffer device struct fb_info is stored in the file private data, but this reference could no longer be valid and must not be accessed directly. Instead, the file_fb_info() accessor function must be used since it does sanity checking to make sure that the fb_info is valid. This can happen for example if the registered framebuffer device is for a driver that just uses a framebuffer provided by the system firmware. In that case, the fbdev core would unregister the framebuffer device when a real video driver is probed and ask to remove conflicting framebuffers. The bug has been present for a long time but commit 27599aacbaef ("fbdev: Hot-unplug firmware fb devices on forced removal") unmasked it since the fbdev core started unregistering the framebuffers' devices associated. Fixes: 27599aacbaef ("fbdev: Hot-unplug firmware fb devices on forced removal") Reported-by: Maxime Ripard <redacted> Reported-by: Junxiao Chang <redacted> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> ---Applied to drm-misc (drm-misc-fixes).
See my other reply, but how does this not result in leaks? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch