Commit 249a12c5 authored by Huacai Chen's avatar Huacai Chen Committed by Matt Turner

linux: Fix platform device probe for DT-based PCI

On a DT-base PCI platform, the sysfs path of vga device is like this:
/sys/devices/platform/bus@10000000/1a000000.pci/pci0000:00/0000:00:11.0/0000:04:00.0.

Then the ID_PATH from udev is platform-1a000000.pci-pci-0000:04:00.0 and
the BusID will be pci-0000:04:00.0, which causes Xorg start fail. This
is because config_udev_odev_setup_attribs() use strstr() to search the
first "pci-" in ID_PATH. To fix this, we implement a strrstr() function
and use it to search the last "pci-" in ID_PATH, which can get a correct
BusID.

(backported from commit 9fbd3e43)
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Signed-off-by: default avatarHuacai Chen <chenhc@lemote.com>
parent 5c96eb5f
Pipeline #191703 passed with stages
in 5 minutes and 14 seconds