[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <88edab79-5f9a-007d-f2e9-d264178fe80b@linaro.org>
Date: Tue, 4 Jul 2023 09:35:50 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Tuo Li <islituo@...il.com>, inki.dae@...sung.com,
sw0312.kim@...sung.com, kyungmin.park@...sung.com,
airlied@...il.com, daniel@...ll.ch, alim.akhtar@...sung.com
Cc: dri-devel@...ts.freedesktop.org,
linux-arm-kernel@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org, linux-kernel@...r.kernel.org,
baijiaju1990@...look.com, BassCheck <bass@...a.edu.cn>
Subject: Re: [PATCH] drm/exynos: fix a possible null-pointer dereference due
to data race in exynos_drm_crtc_atomic_disable()
On 30/06/2023 04:19, Tuo Li wrote:
> The variable crtc->state->event is often protected by the lock
> crtc->dev->event_lock when is accessed. However, it is accessed as a
> condition of an if statement in exynos_drm_crtc_atomic_disable() without
> holding the lock:
>
> if (crtc->state->event && !crtc->state->active)
>
> However, if crtc->state->event is changed to NULL by another thread right
> after the conditions of the if statement is checked to be true, a
> null-pointer dereference can occur in drm_crtc_send_vblank_event():
>
> e->pipe = pipe;
>
> To fix this possible null-pointer dereference caused by data race, the
> spin lock coverage is extended to protect the if statement as well as the
> function call to drm_crtc_send_vblank_event().
>
> Reported-by: BassCheck <bass@...a.edu.cn>
> Signed-off-by: Tuo Li <islituo@...il.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Best regards,
Krzysztof
Powered by blists - more mailing lists