You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
media: allegro: ignore interrupt if mailbox is not initialized
[ Upstream commit 1ecda6393d ]
The mailbox is initialized after the interrupt handler is installed. As
the firmware is loaded and started even later, it should not happen that
the interrupt occurs without the mailbox being initialized.
As the Linux Driver Verification project (linuxtesting.org) keeps
reporting this as an error, add a check to ignore interrupts before the
mailbox is initialized to fix this potential null pointer dereference.
Reported-by: Yuri Savinykh <s02190703@gse.cs.msu.ru>
Reported-by: Nadezda Lutovinova <lutovinova@ispras.ru>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
49cc377654
commit
1a10bf4c9d
@@ -1802,6 +1802,15 @@ static irqreturn_t allegro_irq_thread(int irq, void *data)
|
||||
{
|
||||
struct allegro_dev *dev = data;
|
||||
|
||||
/*
|
||||
* The firmware is initialized after the mailbox is setup. We further
|
||||
* check the AL5_ITC_CPU_IRQ_STA register, if the firmware actually
|
||||
* triggered the interrupt. Although this should not happen, make sure
|
||||
* that we ignore interrupts, if the mailbox is not initialized.
|
||||
*/
|
||||
if (!dev->mbox_status)
|
||||
return IRQ_NONE;
|
||||
|
||||
allegro_mbox_notify(dev->mbox_status);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
||||
Reference in New Issue
Block a user