On 19.10.2021 12:40, Bertrand Marquis wrote: > --- a/xen/drivers/vpci/vpci.c > +++ b/xen/drivers/vpci/vpci.c > @@ -54,7 +54,7 @@ void vpci_remove_device(struct pci_dev *pdev) > pdev->vpci = NULL; > } > > -int __hwdom_init vpci_add_handlers(struct pci_dev *pdev) > +int vpci_add_handlers(struct pci_dev *pdev)
A fundamental requirement when altering section attributes is to also check that all referenced entities are appropriately placed. Afaict this is not the case for __start_vpci_array[], and you'll need to also adjust linker scripts to deal with that. Further you'd have to check that all functions referenced by that array aren't __hwdom_init. In taking an example (init_msi()) I'm actually surprised to find it's not marked __hwdom_init. So maybe all is fine as far as these are concerned. Jan