]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/imagination: Move dereference after NULL check in pvr_mmu_backing_page_init()
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 6 Dec 2023 14:37:24 +0000 (17:37 +0300)
committerMaxime Ripard <mripard@kernel.org>
Fri, 8 Dec 2023 09:25:24 +0000 (10:25 +0100)
This code dereferences "page->pvr_dev" and then checked for NULL on the
next line.  Re-order it to avoid a potential NULL pointer dereference.

Fixes: ff5f643de0bf ("drm/imagination: Add GEM and VM related code")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/13f4278e-af9c-4092-9196-bc0e6b76f1eb@moroto.mountain
drivers/gpu/drm/imagination/pvr_mmu.c

index c8562bfc0dcda35875c0c39ebb43816f60f01af0..4fe70610ed94cf707e631f8148af081a94f97327 100644 (file)
@@ -316,12 +316,14 @@ pvr_mmu_backing_page_init(struct pvr_mmu_backing_page *page,
 static void
 pvr_mmu_backing_page_fini(struct pvr_mmu_backing_page *page)
 {
-       struct device *dev = from_pvr_device(page->pvr_dev)->dev;
+       struct device *dev;
 
        /* Do nothing if no allocation is present. */
        if (!page->pvr_dev)
                return;
 
+       dev = from_pvr_device(page->pvr_dev)->dev;
+
        dma_unmap_page(dev, page->dma_addr, PVR_MMU_BACKING_PAGE_SIZE,
                       DMA_TO_DEVICE);