[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH V7 03/11] vpci/header: implement guest BAR register handlers
On 19.07.2022 19:42, Oleksandr Tyshchenko wrote: > @@ -527,6 +592,17 @@ static int cf_check init_bars(struct pci_dev *pdev) > if ( (val & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO ) > { > bars[i].type = VPCI_BAR_IO; > + > +#ifndef CONFIG_X86 > + if ( !is_hwdom ) > + { > + rc = vpci_add_register(pdev->vpci, empty_bar_read, NULL, > + reg, 4, &bars[i]); > + if ( rc ) > + goto fail; > + } > +#endif Since long term this can't be correct, it wants a TODO comment put next to it. > @@ -553,34 +635,47 @@ static int cf_check init_bars(struct pci_dev *pdev) > bars[i].size = size; > bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH; > > - rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg, 4, > - &bars[i]); > + rc = vpci_add_register(pdev->vpci, > + is_hwdom ? vpci_hw_read32 : guest_bar_read, > + is_hwdom ? bar_write : guest_bar_write, > + reg, 4, &bars[i]); > if ( rc ) > - { > - pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd); > - return rc; > - } > + goto fail; > } > > - /* Check expansion ROM. */ > - rc = pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR_ROM); > - if ( rc > 0 && size ) > + /* Check expansion ROM: we do not handle ROM for guests. */ > + if ( is_hwdom ) This again can't be right long-term. Personally I'd prefer if the code was (largely) left as is, with adjustments (with suitable TODO comments) made on a much smaller scope only. But I'm not the maintainer of this code - Roger may have a different view on this. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |