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]);
|
||||
}
|
||||
|
||||
/* Check for the secondary display too */
|
||||
chan = readl(crtc_list[0]->regs + SMIDSW1);
|
||||
if (crtc_list[1]) {
|
||||
/* Check for the secondary display too */
|
||||
chan = readl(crtc_list[0]->regs + SMIDSW1);
|
||||
|
||||
if (chan & 1) {
|
||||
writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1);
|
||||
if (crtc_list[1]->vblank_enabled)
|
||||
drm_crtc_handle_vblank(&crtc_list[1]->base);
|
||||
vc4_crtc_handle_page_flip(crtc_list[1]);
|
||||
if (chan & 1) {
|
||||
writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1);
|
||||
|
||||
if (crtc_list[1]->vblank_enabled)
|
||||
drm_crtc_handle_vblank(&crtc_list[1]->base);
|
||||
vc4_crtc_handle_page_flip(crtc_list[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user