Re: [PATCH v5 3/9] vpci: only check BAR validity once
Jan Beulich <[email protected]>
| Newsgroups | org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
On 08.07.2026 23:02, Stewart Hildebrand wrote: > From: Roger Pau Monne <[email protected]> > > The BAR validity checks in modify_decoding() are redundant since they > are already done in modify_bars(). > > Avoid multiple calls to pci_check_bar() for the same memory decoding > related operation, as each call can possibly print a warning message > about a BAR being in an invalid position. > > Further, there's no need to defer setting bar->enabled until p2m > operations are finished. It can safely be set in modify_bars() itself. > This slightly changes the meaning of the bar->enabled flag: when true, > it means a BAR is either mapped or queued to be mapped. But are all consumers of the flag okay with this semantic change? What would clear the flag if the mapping failed? It looks to me as if e.g. msix_find()'s behavior would change then. > @@ -296,6 +287,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) > struct pci_dev *tmp; > const struct domain *d; > const struct vpci_msix *msix = pdev->vpci->msix; > + bool bar_valid[ARRAY_SIZE(header->bars)] = { false }; Just {} ? Jan