+pflash On 12/18/20 7:27 PM, Paolo Bonzini wrote: > This property can be useful for distros to set up known-good ROM sizes for > migration purposes. The VM will fail to start if the ROM is too large, > and migration compatibility will not be broken if the ROM is too small. > > Signed-off-by: Paolo Bonzini <[email protected]> > --- > hw/pci/pci.c | 19 +++++++++++++++++-- > hw/xen/xen_pt_load_rom.c | 14 ++++++++++++-- > include/hw/pci/pci.h | 1 + > 3 files changed, 30 insertions(+), 4 deletions(-) > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > index d4349ea577..fd25253c2a 100644 > --- a/hw/pci/pci.c > +++ b/hw/pci/pci.c > @@ -67,6 +67,7 @@ static void pcibus_reset(BusState *qbus); > static Property pci_props[] = { > DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1), > DEFINE_PROP_STRING("romfile", PCIDevice, romfile), > + DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, -1), > DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1), > DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present, > QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false), > @@ -2106,6 +2107,11 @@ static void pci_qdev_realize(DeviceState *qdev, Error > **errp) > bool is_default_rom; > uint16_t class_id; > > + if (pci_dev->romsize != -1 && !is_power_of_2(pci_dev->romsize)) { > + error_setg(errp, "ROM size %d is not a power of two", > pci_dev->romsize); > + return; > + }
Some cloud providers already complained the pow2 check in the pflash device (wasting host storage). Personally I find using pow2 easier and safer. The pow2 check looks like a separate change however, maybe add in a separate patch? Or maybe not :) Regards, Phil.
