Skip to content

Commit 74deef0

Browse files
khfengalexdeucher
authored andcommitted
efifb: Check efifb_pci_dev before using it
On some platforms like Hyper-V and RPi4 with UEFI firmware, efifb is not a PCI device. So make sure efifb_pci_dev is found before using it. Fixes: a6c0fd3 ("efifb: Ensure graphics device for efifb stays at PCI D0") BugLink: https://bugs.launchpad.net/bugs/1922403 Signed-off-by: Kai-Heng Feng <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 2a269ba commit 74deef0

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/video/fbdev/efifb.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,8 @@ static int efifb_probe(struct platform_device *dev)
575575
goto err_fb_dealoc;
576576
}
577577
fb_info(info, "%s frame buffer device\n", info->fix.id);
578-
pm_runtime_get_sync(&efifb_pci_dev->dev);
578+
if (efifb_pci_dev)
579+
pm_runtime_get_sync(&efifb_pci_dev->dev);
579580
return 0;
580581

581582
err_fb_dealoc:
@@ -602,7 +603,8 @@ static int efifb_remove(struct platform_device *pdev)
602603
unregister_framebuffer(info);
603604
sysfs_remove_groups(&pdev->dev.kobj, efifb_groups);
604605
framebuffer_release(info);
605-
pm_runtime_put(&efifb_pci_dev->dev);
606+
if (efifb_pci_dev)
607+
pm_runtime_put(&efifb_pci_dev->dev);
606608

607609
return 0;
608610
}

0 commit comments

Comments
 (0)