Re: [PATCH v2 1/7] blk-mq-dma: restore BLK_STS_TARGET for unsupported P2P transfers
Logan Gunthorpe <[email protected]> Mon, 20 Jul 2026 12:42:50 -0600
| Newsgroups | org.kernel.vger.linux-raid,org.infradead.lists.linux-nvme,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.linux-rdma |
|---|---|
| Message-ID | <[email protected]> |
On 2026-07-20 11:30, Mykola Marzhan wrote: > On Mon, Jul 20, 2026 at 4:49 PM Christoph Hellwig <[email protected] >> This is a really weird writing style, and suggested to me you neither >> understand the code nor the problem. Please actually think yourself, >> write the patches and commit logs yourself instdad of this garbage. >> >> And please also explain how you even generate the I/O that fails this >> way. > - md mirrors the write: the copy to member 1 succeeds, the copy to far > member fails as BLK_STS_INVAL. > - md deliberately ignores BLK_STS_INVAL, so the write is counted as > written and the mirror silently diverges. Seeing I just reviewed this and answered it for myself I'll expand on what's going on here: The switch statement will take the default branch when pci_p2pdma_state() returns PCI_P2PDMA_MAP_NOT_SUPPORTED. This indicates the memory that's trying to be mapped in this way will not succeed because it's going through an unsupported host bridge (or if the device isn't a PCI device, etc, but this is rarer or perhaps not possible). Returning BLK_STS_INVAL doesn't seem correct here, to me. (Arguably it might have been clearer if the switch case explicitly stated PCI_P2PDMA_MAP_NOT_SUPPORTED instead of relying on the default). Returning -EREMOTEIO/BLK_STS_TARGET was the convention for this I had originally set when I wrote some of this and differentiating the error does seem important in Patch 6 in this series. Logan