mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-11-13 14:52:12 -10:00
When vt(4) falls back to vt_vga, vga_init() passes vd_video_dev to vga_pci_repost(), which expects a vgapci(4) device. The framebuffer driver that set it need not provide one: drm-kmod's linux_fb passes the parent of the DRM parent device, which is vgapci for LinuxKPI PCI drivers but the PCI bus for virtio-gpu, whose DRM parent is the virtio PCI transport. On x86, vga_pci_repost() then calls pci_get_class() on the bus, which fails the accessor's KASSERT under INVARIANTS; without INVARIANTS the class reads as 0 and the repost is skipped. Repost only a vgapci device. Signed-off-by: Denis Borovikov <[email protected]> Reviewed by: wulf Differential Revision: https://reviews.freebsd.org/D60880