]> git.baikalelectronics.ru Git - kernel.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 11:22:20 +0000 (13:22 +0200)
commit 8c9aa3f9e85fe28d8b64137a20271750c1a26b6d upstream.

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: 42a3db540da2 (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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/media/sunxi/cedrus/cedrus.c

index e80e82a276e93dd8f0ffd5ff34ca42b6fb00a493..6ad44889977994bd3836db4d91b66c591eaf3339 100644 (file)
@@ -323,6 +323,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;
@@ -392,8 +394,6 @@ static int cedrus_probe(struct platform_device *pdev)
                goto err_m2m_mc;
        }
 
-       platform_set_drvdata(pdev, dev);
-
        return 0;
 
 err_m2m_mc: