On 2024-10-11 20:40, Vivek Kasireddy wrote: > Functions of the same PCI device (such as a PF and a VF) share the > same bus and have a common root port and typically, the PF provisions > resources for the VF. Therefore, they can be considered compatible > as far as P2P access is considered. > > Currently, although the distance (2) is correctly calculated for > functions of the same device, an ACS check failure prevents P2P DMA > access between them. Therefore, introduce a small function named > same_pci_device_functions() to determine if the provider and > client belong to the same device and facilitate P2P DMA between > them by not enforcing the ACS check. I'm not totally opposed to this. But the current code was done this way for a reason: we can't be sure that functions on any given device can talk to each other. So this change may break if used with other devices with multiple functions that can't talk to each other. That being said, the only alternative I can think of is another list of allowed devices. However, given the pain it's been maintaining allowed root ports, I'm not very enthusiastic about creating another list of allowed devices in the kernel. Logan