On 05.06.2025 18:16, Roger Pau Monne wrote: > @@ -271,6 +279,43 @@ void pci_setup(void) > if ( bar_sz == 0 ) > continue; > > + if ( !xenpci_bar_uc && > + ((bar_data & PCI_BASE_ADDRESS_SPACE) == > + PCI_BASE_ADDRESS_SPACE_MEMORY) && > + vendor_id == 0x5853 && > + (device_id == 0x0001 || device_id == 0x0002) ) > + { > + if ( is_64bar ) > + { > + printf("xenpci dev %02x:%x unexpected MMIO 64bit > BAR%u\n", > + devfn >> 3, devfn & 7, bar); > + continue; > + } > + > + if ( bar_sz > pci_mem_end || > + ((pci_mem_end - bar_sz) & ~(bar_sz - 1)) < > pci_mem_start ) > + { > + printf("xenpci dev %02x:%x BAR%u size %llx overflows > low PCI hole\n", > + devfn >> 3, devfn & 7, bar, bar_sz); > + continue; > + }
Is "continue" really the right way of handling the problem here? We didn't skip this BAR prior to your changes just because of either of these being true. Jan