On Thu, Apr 01, 2021 at 04:26:50PM +0200, Vincent Bernat wrote: > ❦ 1 avril 2021 09:59 -04, Michael S. Tsirkin: > > >> + /* > >> + * TODO: Extract the appropriate value. Most of the > >> + * time, this will be 0. > >> + */ > >> + t->segment_group_number = cpu_to_le16(0); > >> + t->bus_number = pci_dev_bus_num(pdev); > >> + t->device_number = pdev->devfn; > > > > Problem is, for devices behind bridges for example, bus is only > > configured by guest, after pci has been enumerated. > > > > So I suspect this either > > - needs to be limited to only work for the root bus > > - needs to be re-evaluted on guest access, like we do > > with ACPI > > Or the address can be provided by the user. I didn't want to keep that > at this is error prone and there may be surprises after adding a device > or after a QEMU upgrade.
Or on guest changes. > > Otherwise, limiting to the root bus seems a fine limitation by me. How > do I check that? pci_bus_is_root will do this. Pls document the reason for the limitation. > -- > Don't just echo the code with comments - make every comment count. > - The Elements of Programming Style (Kernighan & Plauger)