Re: [PATCH v2] fbdev: Make fb_release() return -ENODEV if fbdev was unregistered

From: Javier Martinez Canillas
Date: Tue May 03 2022 - 11:28:35 EST


On 5/2/22 15:50, Javier Martinez Canillas wrote:
> 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 <maxime@xxxxxxxxxx>
> Reported-by: Junxiao Chang <junxiao.chang@xxxxxxxxx>
> Signed-off-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
> Reviewed-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
> ---
Applied to drm-misc (drm-misc-fixes).

--
Best regards,

Javier Martinez Canillas
Linux Engineering
Red Hat