On Tue, Jul 29, 2025 at 11:53:36AM +0300, Leon Romanovsky wrote:
quoted
Because the struct page is the only thing that:
a) dma-mapping works on
b) is the only place we can discover the routing information, but also
more importantly ensure that the underlying page is still present
and the device is not hot unplugged, or in a very theoretical worst
case replaced by something else.
It is correct in general case, but here we are talking about MMIO
memory, which is "connected" to device X and routing information is
stable.
MMIO is literally the only thing we support to P2P to/from as that is
how PCIe P2P is defined. And not, it's not stable - devices can be
unplugged, and BARs can be reenumerated.