]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vc4: kms: Fix IS_ERR() vs NULL check for vc4_kms
authorGaosheng Cui <cuigaosheng1@huawei.com>
Thu, 10 Nov 2022 09:44:45 +0000 (17:44 +0800)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 10 Nov 2022 11:46:02 +0000 (12:46 +0100)
commitbbea5581ce66ce0906b5cd683c0e210e2033d181
tree7bfc90ae5ce3a2cfd490d4a113864dd9a5c95c1e
parent9f0caa684e22fc7ebe419b8a19916a025b1fd4e7
drm/vc4: kms: Fix IS_ERR() vs NULL check for vc4_kms

The drm_atomic_get_new_private_obj_state() function returns NULL
on error path, drm_atomic_get_old_private_obj_state() function
returns NULL on error path, too, they does not return error pointers.

By the way, vc4_hvs_get_new/old_global_state() should return
ERR_PTR(-EINVAL), otherwise there will be null-ptr-defer issue,
such as follows:

In function vc4_atomic_commit_tail():
  |-- old_hvs_state = vc4_hvs_get_old_global_state(state); <-- return NULL
  |-- if (WARN_ON(IS_ERR(old_hvs_state))) <-- no return
  |-- unsigned long state_rate = max(old_hvs_state->core_clock_rate,
new_hvs_state->core_clock_rate); <-- null-ptr-defer

Fixes: 4c39a07c7800 ("drm/vc4: kms: Wait on previous FIFO users before a commit")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20221110094445.2930509-6-cuigaosheng1@huawei.com
drivers/gpu/drm/vc4/vc4_kms.c