mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 13:06:59 +02:00
drm/mediatek: fix kernel oops if no crtc is found
[ Upstream commit4662817aed] drm_crtc_from_index(0) might return NULL if there are no CRTCs registered at all which will lead to a kernel oops in mtk_drm_crtc_dma_dev_get(). Add the missing return value check. Fixes:0d9eee9118("drm/mediatek: Add drm ovl_adaptor sub driver for MT8195") Signed-off-by: Michael Walle <mwalle@kernel.org> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Tested-by: Eugen Hristev <eugen.hristev@collabora.com> Reviewed-by: Eugen Hristev <eugen.hristev@collabora.com> Link: https://patchwork.kernel.org/project/dri-devel/patch/20230905084922.3908121-1-mwalle@kernel.org/ Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
98bd0b4ad5
commit
8964524158
|
|
@ -421,6 +421,7 @@ static int mtk_drm_kms_init(struct drm_device *drm)
|
|||
struct mtk_drm_private *private = drm->dev_private;
|
||||
struct mtk_drm_private *priv_n;
|
||||
struct device *dma_dev = NULL;
|
||||
struct drm_crtc *crtc;
|
||||
int ret, i, j;
|
||||
|
||||
if (drm_firmware_drivers_only())
|
||||
|
|
@ -495,7 +496,9 @@ static int mtk_drm_kms_init(struct drm_device *drm)
|
|||
}
|
||||
|
||||
/* Use OVL device for all DMA memory allocations */
|
||||
dma_dev = mtk_drm_crtc_dma_dev_get(drm_crtc_from_index(drm, 0));
|
||||
crtc = drm_crtc_from_index(drm, 0);
|
||||
if (crtc)
|
||||
dma_dev = mtk_drm_crtc_dma_dev_get(crtc);
|
||||
if (!dma_dev) {
|
||||
ret = -ENODEV;
|
||||
dev_err(drm->dev, "Need at least one OVL device\n");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user