|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 4/9] vpci/header: Add and remove register handlers dynamically
On 03.09.2021 12:08, Oleksandr Andrushchenko wrote:
> @@ -593,6 +625,36 @@ static int init_bars(struct pci_dev *pdev)
> }
> REGISTER_VPCI_INIT(init_bars, VPCI_PRIORITY_MIDDLE);
>
> +int vpci_bar_add_handlers(const struct domain *d, struct pci_dev *pdev)
> +{
> + int rc;
> +
> + /* Remove previously added registers. */
> + vpci_remove_device_registers(pdev);
> +
> + /* It only makes sense to add registers for hwdom or guest domain. */
> + if ( d->domain_id >= DOMID_FIRST_RESERVED )
> + return 0;
> +
> + if ( is_hardware_domain(d) )
> + rc = add_bar_handlers(pdev, true);
> + else
> + rc = add_bar_handlers(pdev, false);
rc = add_bar_handlers(pdev, is_hardware_domain(d));
> + if ( rc )
> + gprintk(XENLOG_ERR,
> + "%pp: failed to add BAR handlers for dom%d\n", &pdev->sbdf,
> + d->domain_id);
Please use %pd and correct indentation. Logging the error code might
also help some in diagnosing issues. Further I'm not sure this is a
message we want in release builds - perhaps gdprintk()?
> + return rc;
> +}
> +
> +int vpci_bar_remove_handlers(const struct domain *d, struct pci_dev *pdev)
> +{
> + /* Remove previously added registers. */
> + vpci_remove_device_registers(pdev);
> + return 0;
> +}
Also - in how far is the goal of your work to also make vPCI work for
x86 DomU-s? If that's not a goal, I'd like to ask that you limit the
introduction of code that ends up dead there.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |