On 12.03.2023 08:54, Huang Rui wrote: > From: Chen Jiqian <jiqian.c...@amd.com> > > When dom0 is PVH and we want to passthrough gpu to guest, > we should allow BAR writes even through BAR is mapped. If > not, the value of BARs are not initialized when guest firstly > start.
>From this it doesn't become clear why a GPU would be special in this regard, or what (if any) prior bug there was. Are you suggesting ... > --- a/xen/drivers/vpci/header.c > +++ b/xen/drivers/vpci/header.c > @@ -392,7 +392,7 @@ static void cf_check bar_write( > * Xen only cares whether the BAR is mapped into the p2m, so allow BAR > * writes as long as the BAR is not mapped into the p2m. > */ > - if ( bar->enabled ) > + if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY ) > { > /* If the value written is the current one avoid printing a warning. > */ > if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) ) ... bar->enabled doesn't properly reflect the necessary state? It generally shouldn't be necessary to look at the physical device's state here. Furthermore when you make a change in a case like this, the accompanying comment also needs updating (which might have clarified what, if anything, has been wrong). Jan