Am 24.06.19 um 11:15 schrieb Benjamin Herrenschmidt: > On Mon, 2019-06-24 at 09:08 +0000, Koenig, Christian wrote: >> Yeah, can't agree more :) It was one of the main challenges implementing >> the resizing support. >> >> If you want to clean this up feel free to CC me and I can take a look as >> well. But honestly I was scared of touching it when I worked on this, >> because of all the little corner cases you have in PCI. >> >>> Question: Do you ever need to assign anything other than that one >>> device though ? In my branch, I've added this typically for the case >>> where a single device needs to be reassigned: >>> >>> +void pci_dev_assign_resources(struct pci_dev *dev) >>> +{ >>> + LIST_HEAD(head); >>> + >>> + /* Assign non-fixed resources */ >>> + __dev_sort_resources(dev, &head); >>> + __assign_resources_sorted(&head, NULL, NULL); >>> + >>> + /* Assign fixed ones if any */ >>> + pdev_assign_fixed_resources(dev); >>> +} >>> +EXPORT_SYMBOL(pci_dev_assign_resources); >>> >>> Would that work for you ? >> That should work perfectly fine. > Ok, Ill plumb it that way in my branch, I'll let you know when it's > worth testing. BTW. Which GPUs typically are affected ? I'm pretty sure > my old R9 290 isn't :-) But I was thinking of upgrading so... Well in theory we have the functionality 10+ years now, but only activated it in all hardware versions recently. Polaris and Vega should definitely have it, older hardware most likely not. You can check the PCI capabilities and look for #15, if it's present then that should be supported. Christian. > > Cheers, > Ben. > >