On 9/4/25 2:28 PM, Niklas Cassel wrote: Hello Niklas, [...]
pci_epf_alloc_space() works like this: If the user requests a BAR size that is smaller than the fixed-size BAR, it will allocate space matching the fixed-size. As in most cases, having a BAR larger than needed by an EPF driver is still acceptable. However, if the user requests a size larger than the fixed-size BAR, as in your case, we will return an error, as we cannot fulfill the user's request. I don't see any alternative other than your/Damien's proposal above. Unfortunately, all EPF drivers would probably need this same change.
It seems that pci-epf-ntb and pci-epf-vntb only use BAR0 (BAR_CONFIG) and BAR0+BAR1 (BAR_CONFIG and BAR_DB) , so those should be OK on this controller. NVMe EPF also seems to use only BAR0 and it specifically handles fixed size BAR. It seems everything that is in the tree so far managed to sidestep hitting fixed-size BAR4 problems on this hardware, except for the test driver.