>> > >> > Just to confirm, the ask is to just update the comment to reflect the behavior, >> > right? (I missed to do that in this posting). Because we do redirect the call to >> > vfio_pci_core_read() here which will perform the read that is within the device >> > region. The read response to synthesize -1 is only for the range that is outside >> > the device memory region. >> >> This doesn't seem right, vfio_pci_core_read() will use pci_iomap() to >> get a mapping which will be a DEVICE mapping, this will make the >> access incoherent with any cachable mappings. > > Right, but also vfio_pci_core_read() doesn't know anything about this > virtual BAR2, so any in-range BAR2 accesses will error the same as > trying to access an unimplemented BAR. It's not just the comment, > there's no code here to handle a read(2) from in-bound BAR2 accesses. > Thanks, Got it, I would do memremap() to the target device memory physical address here. The memremap() and the data copy would be done to only the number of bytes asked with the read/write operation. Will post that with the next version shortly.