Hi Oleksandr, On 09/12/2021 07:29, Oleksandr Andrushchenko wrote:
+unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d) +{ + if ( !has_vpci(d) ) + return 0; + + if ( is_hardware_domain(d) ) + { + int ret = pci_host_iterate_bridges_and_count(d, vpci_get_num_handlers_cb); + + return ret < 0 ? 0 : ret;
Sorry I only spotted this now. AFAICT, ret is not meant to return ret < 0 in this case. But if it were then I think it would be wrong to continue as nothing happened because the code will likely fall over/crash when registering the I/O handlers.
I would document this oddity with if ( ret < 0 ) { ASSERT_UNREACHABLE(); return 0; } I can do the change on commit if the others are happy with it. Cheers, -- Julien Grall