[Freedreno] [PATCH] drm/msm: Do not run snapshot on non-DPU devices
abhinavk at codeaurora.org
abhinavk at codeaurora.org
Thu Sep 16 02:22:25 UTC 2021
Hi Fabio
On 2021-09-14 10:48, Fabio Estevam wrote:
> Since commit 98659487b845 ("drm/msm: add support to take dpu snapshot")
> the following NULL pointer dereference is seen on i.MX53:
>
> [ 3.275493] msm msm: bound 30000000.gpu (ops a3xx_ops)
> [ 3.287174] [drm] Initialized msm 1.8.0 20130625 for msm on minor 0
> [ 3.293915] 8<--- cut here ---
> [ 3.297012] Unable to handle kernel NULL pointer dereference at
> virtual address 00000028
> [ 3.305244] pgd = (ptrval)
> [ 3.307989] [00000028] *pgd=00000000
> [ 3.311624] Internal error: Oops: 805 [#1] SMP ARM
> [ 3.316430] Modules linked in:
> [ 3.319503] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> 5.14.0+g682d702b426b #1
> [ 3.326652] Hardware name: Freescale i.MX53 (Device Tree Support)
> [ 3.332754] PC is at __mutex_init+0x14/0x54
> [ 3.336969] LR is at msm_disp_snapshot_init+0x24/0xa0
>
> i.MX53 does not use the DPU controller.
>
> Fix the problem by only calling msm_disp_snapshot_init() on platforms
> that
> use the DPU controller.
>
> Cc: stable at vger.kernel.org
> Fixes: 98659487b845 ("drm/msm: add support to take dpu snapshot")
> Signed-off-by: Fabio Estevam <festevam at gmail.com>
> ---
> drivers/gpu/drm/msm/msm_drv.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c
> b/drivers/gpu/drm/msm/msm_drv.c
> index 2e6fc185e54d..2aa2266454b7 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -630,10 +630,11 @@ static int msm_drm_init(struct device *dev,
> const struct drm_driver *drv)
> if (ret)
> goto err_msm_uninit;
>
> - ret = msm_disp_snapshot_init(ddev);
> - if (ret)
> - DRM_DEV_ERROR(dev, "msm_disp_snapshot_init failed ret = %d\n", ret);
> -
> + if (kms) {
> + ret = msm_disp_snapshot_init(ddev);
> + if (ret)
> + DRM_DEV_ERROR(dev, "msm_disp_snapshot_init failed ret = %d\n",
> ret);
> + }
Are you not using DPU or are you not using mdp4/mdp5 as well? Even if
you are using any of mdps, kms should
not be NULL. Hence wanted to check the test case.
> drm_mode_config_reset(ddev);
>
> #ifdef CONFIG_DRM_FBDEV_EMULATION
More information about the Freedreno
mailing list