mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
Fixup FKMS interrupt handing for non-existent display
If an errant interrupt flag was received from a non-existent display, a NULL pointer access was made. Protect against this by checking if a second display is present prior to checking the interrupt flags.
This commit is contained in:
committed by
Phil Elwell
parent
5ba43ff8f4
commit
cd408f3249
@@ -1055,14 +1055,17 @@ static irqreturn_t vc4_crtc_irq_handler(int irq, void *data)
|
|||||||
vc4_crtc_handle_page_flip(crtc_list[0]);
|
vc4_crtc_handle_page_flip(crtc_list[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for the secondary display too */
|
if (crtc_list[1]) {
|
||||||
chan = readl(crtc_list[0]->regs + SMIDSW1);
|
/* Check for the secondary display too */
|
||||||
|
chan = readl(crtc_list[0]->regs + SMIDSW1);
|
||||||
|
|
||||||
if (chan & 1) {
|
if (chan & 1) {
|
||||||
writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1);
|
writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1);
|
||||||
if (crtc_list[1]->vblank_enabled)
|
|
||||||
drm_crtc_handle_vblank(&crtc_list[1]->base);
|
if (crtc_list[1]->vblank_enabled)
|
||||||
vc4_crtc_handle_page_flip(crtc_list[1]);
|
drm_crtc_handle_vblank(&crtc_list[1]->base);
|
||||||
|
vc4_crtc_handle_page_flip(crtc_list[1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user