❦ 1 avril 2021 10:38 +01, Daniel P. Berrangé: >> hw/smbios/smbios.c | 47 +++++++++++++++++++++------------------------- >> qemu-options.hx | 2 +- >> 2 files changed, 22 insertions(+), 27 deletions(-) > > It doesn't really make sense to have this as a separate patch > when it is deleting half the code you added in the previous > patch. Just merge them together as one.
I'll do that. >> + /* >> + * TODO: Extract the appropriate value. Most of the >> + * time, this will be 0. >> + */ >> + t->segment_group_number = cpu_to_le16(0); > > Hmm, tricky, as it requires interpreting the PCI topology. Wonder if > there's any helper that can do the hard work for you There is pci_root_bus_path(), but it returns a string which could just contain a segment or several segments. It seems the SMBIOS standard didn't account for complex topologies. I could parse the string. and keep only the right-most segment. >> + t->bus_number = pci_dev_bus_num(pdev); >> + t->device_number = pdev->devfn; >> + } else { >> + fprintf(stderr, "%s: cannot find PCI device %s\n", >> + __func__, t41->pcidev); > > This isn't terminating execution which looks like a bug. It was my intention. The PCI address will then be 00:00:00.0. If you think it's better to terminate, I can do what you suggest. -- Replace repetitive expressions by calls to a common function. - The Elements of Programming Style (Kernighan & Plauger)