Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/via: Add new condition to via_dma_cleanup()

Pointer dev_priv->mmio, which was checked for NULL at via_do_init_map(),
is passed to via_do_cleanup_map() and is dereferenced there without check.

The patch adds the condition in via_dma_cleanup() which prevents potential NULL
pointer dereference.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 22f579c621e2 ("drm: Add via unichrome support")
Signed-off-by: Alisa Khabibrakhmanova <khabibrakhmanova@ispras.ru>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20220729090643.240778-1-khabibrakhmanova@ispras.ru

authored by

Alisa Khabibrakhmanova and committed by
Daniel Vetter
5e1bfb27 07d50b82

+1 -1
+1 -1
drivers/gpu/drm/via/via_dri1.c
··· 2961 2961 drm_via_private_t *dev_priv = 2962 2962 (drm_via_private_t *) dev->dev_private; 2963 2963 2964 - if (dev_priv->ring.virtual_start) { 2964 + if (dev_priv->ring.virtual_start && dev_priv->mmio) { 2965 2965 via_cmdbuf_reset(dev_priv); 2966 2966 2967 2967 drm_legacy_ioremapfree(&dev_priv->ring.map, dev);