From: Thomas Zimmermann Date: Fri, 19 Apr 2024 08:28:58 +0000 (+0200) Subject: fbdev/deferred-io: Test smem_start for I/O memory X-Git-Tag: v6.11-rc1~141^2~24^2~236 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dcaefc82395841fa15aa70a2c8841cda4f87125f;p=thirdparty%2Fkernel%2Flinux.git fbdev/deferred-io: Test smem_start for I/O memory Test smem_start before looking up pages from its value. Return NULL if it is unset. This will result in a SIGBUS signal. Signed-off-by: Thomas Zimmermann Reviewed-by: Javier Martinez Canillas Link: https://patchwork.freedesktop.org/patch/msgid/20240419083331.7761-6-tzimmermann@suse.de --- diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c index 45e8708eb223a..37910753759cd 100644 --- a/drivers/video/fbdev/core/fb_defio.c +++ b/drivers/video/fbdev/core/fb_defio.c @@ -26,11 +26,11 @@ static struct page *fb_deferred_io_page(struct fb_info *info, unsigned long offs) { const void *screen_buffer = info->screen_buffer; - struct page *page; + struct page *page = NULL; if (is_vmalloc_addr(screen_buffer + offs)) page = vmalloc_to_page(screen_buffer + offs); - else + else if (info->fix.smem_start) page = pfn_to_page((info->fix.smem_start + offs) >> PAGE_SHIFT); return page;