Simona Vetter <simona.vetter@xxxxxxxx> writes: > On Wed, Dec 11, 2024 at 10:06:28AM +0100, Thomas Zimmermann wrote: >> DMA areas are not necessarily backed by struct page, so we cannot >> rely on it for deferred I/O. Allocate a shadow buffer for drivers >> that require deferred I/O and use it as framebuffer memory. >> >> Fixes driver errors about being "Unable to handle kernel NULL pointer >> dereference at virtual address" or "Unable to handle kernel paging >> request at virtual address". >> >> The patch splits drm_fbdev_dma_driver_fbdev_probe() in an initial >> allocation, which creates the DMA-backed buffer object, and a tail >> that sets up the fbdev data structures. There is a tail function for >> direct memory mappings and a tail function for deferred I/O with >> the shadow buffer. >> >> It is no longer possible to use deferred I/O without shadow buffer. >> It can be re-added if there exists a reliably test for usable struct >> page in the allocated DMA-backed buffer object. >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> >> Reported-by: Nuno Gonçalves <nunojpg@xxxxxxxxx> >> CLoses: https://lore.kernel.org/dri-devel/CAEXMXLR55DziAMbv_+2hmLeH-jP96pmit6nhs6siB22cpQFr9w@xxxxxxxxxxxxxx/ >> Tested-by: Nuno Gonçalves <nunojpg@xxxxxxxxx> >> Fixes: 5ab91447aa13 ("drm/tiny/ili9225: Use fbdev-dma") >> Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> >> Cc: <stable@xxxxxxxxxxxxxxx> # v6.11+ > > fbdev code scares me, but I at least tried to check a few things and looks > all good. > > Reviewed-by: Simona Vetter <simona.vetter@xxxxxxxx> > Same here, is always scary to review fbdev code but the patch looks good to me. Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> -- Best regards, Javier Martinez Canillas Core Platforms Red Hat