drm/msm/dpu: Add callback function pointer check before its call
BugLink: https://bugs.launchpad.net/bugs/2073603
[ Upstream commit 530f272053a5e72243a9cb07bb1296af6c346002 ]
In dpu_core_irq_callback_handler() callback function pointer is compared to NULL,
but then callback function is unconditionally called by this pointer.
Fix this bug by adding conditional return.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: c929ac60b3 ("drm/msm/dpu: allow just single IRQ callback")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/588237/
Link: https://lore.kernel.org/r/20240408085523.12231-1-amishin@t-argos.ru
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Roxana Nicolescu
parent
81bfeb5677
commit
aeaccbbe63
@@ -223,9 +223,11 @@ static void dpu_core_irq_callback_handler(struct dpu_kms *dpu_kms, unsigned int
|
||||
|
||||
VERB("IRQ=[%d, %d]\n", DPU_IRQ_REG(irq_idx), DPU_IRQ_BIT(irq_idx));
|
||||
|
||||
if (!irq_entry->cb)
|
||||
if (!irq_entry->cb) {
|
||||
DRM_ERROR("no registered cb, IRQ=[%d, %d]\n",
|
||||
DPU_IRQ_REG(irq_idx), DPU_IRQ_BIT(irq_idx));
|
||||
return;
|
||||
}
|
||||
|
||||
atomic_inc(&irq_entry->count);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user