Re: Regression: firmware/sysfb.c device path

From: Thomas Zimmermann
Date: Sun Jul 14 2024 - 15:46:41 EST


Marek, could this also be the cause of your reported bug?

Am 13.07.24 um 19:20 schrieb Tj:
The recent commits to add the parent device path broke Debian's kvm based QA workers for testing installer ISOs after a kernel upgrade from v6.8.12 to v6.9.7. For the details:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075713

It took some time to track it down since the superficial symptom appeared to involve the QXL driver. It turned out however to be the fbdev driver; specifically the change in the parent device path in sysfs reported between the two kernels:

6.8.12:

/sys/class/graphics/fb0 -> ../../devices/platform/vesa-framebuffer.0/graphics/fb0

6.9.7:

/sys/class/graphics/fb0 -> ../../devices/pci0000:00/0000:00:01.0/vesa-framebuffer.0/graphics/fb0

This breaks xserver-xorg-core's libfbdevhw.so because it differentiates code-paths based on whether "devices/pci" is matched in the symlink.

See hw/xfree86/fbdevhw/fbdevhw.c::fbdev_open()

https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/fbdevhw/fbdevhw.c?ref_type=heads#L381

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)