bcm27xx: add support for linux v5.15
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.15 / 950-0563-drm-vc4-kms-Fix-return-code-check.patch
1 From e0788eaab7b0dca567c52a5959fbdd9da942a1f5 Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Wed, 20 Oct 2021 13:31:22 +0200
4 Subject: [PATCH] drm/vc4: kms: Fix return code check
5
6 The HVS global state functions return an error pointer, but in most
7 cases we check if it's NULL, possibly resulting in an invalid pointer
8 dereference.
9
10 Fixes: 9ec03d7f1ed3 ("drm/vc4: kms: Wait on previous FIFO users before a commit")
11 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
12 ---
13 drivers/gpu/drm/vc4/vc4_kms.c | 8 ++++----
14 1 file changed, 4 insertions(+), 4 deletions(-)
15
16 --- a/drivers/gpu/drm/vc4/vc4_kms.c
17 +++ b/drivers/gpu/drm/vc4/vc4_kms.c
18 @@ -352,11 +352,11 @@ static void vc4_atomic_commit_tail(struc
19 int i;
20
21 old_hvs_state = vc4_hvs_get_old_global_state(state);
22 - if (WARN_ON(!old_hvs_state))
23 + if (WARN_ON(IS_ERR(old_hvs_state)))
24 return;
25
26 new_hvs_state = vc4_hvs_get_new_global_state(state);
27 - if (WARN_ON(!new_hvs_state))
28 + if (WARN_ON(IS_ERR(new_hvs_state)))
29 return;
30
31 for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
32 @@ -891,8 +891,8 @@ vc4_core_clock_atomic_check(struct drm_a
33 load_state = to_vc4_load_tracker_state(priv_state);
34
35 hvs_new_state = vc4_hvs_get_global_state(state);
36 - if (!hvs_new_state)
37 - return -EINVAL;
38 + if (IS_ERR(hvs_new_state))
39 + return PTR_ERR(hvs_new_state);
40
41 for_each_oldnew_crtc_in_state(state, crtc,
42 old_crtc_state,