media: cedrus: Set the platform driver data earlier
authorDmitry Osipenko <dmitry.osipenko@collabora.com>
Thu, 18 Aug 2022 20:33:07 +0000 (22:33 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 30 Aug 2022 12:48:14 +0000 (14:48 +0200)
The cedrus_hw_resume() crashes with NULL deference on driver probe if
runtime PM is disabled because it uses platform data that hasn't been
set up yet. Fix this by setting the platform data earlier during probe.

Cc: stable@vger.kernel.org
Fixes: 50e761516f2b (media: platform: Add Cedrus VPU decoder driver)
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Acked-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus.c

index 960a0130cd62026c14f5c93c4967fe278bf22078..55c54dfdc585c66c1801e95c70a51fd3727bc539 100644 (file)
@@ -448,6 +448,8 @@ static int cedrus_probe(struct platform_device *pdev)
        if (!dev)
                return -ENOMEM;
 
+       platform_set_drvdata(pdev, dev);
+
        dev->vfd = cedrus_video_device;
        dev->dev = &pdev->dev;
        dev->pdev = pdev;
@@ -521,8 +523,6 @@ static int cedrus_probe(struct platform_device *pdev)
                goto err_m2m_mc;
        }
 
-       platform_set_drvdata(pdev, dev);
-
        return 0;
 
 err_m2m_mc: