Re: [RFC PATCH v2 07/11] dma-mapping: Add flags to dma_map_ops to indicate PCI P2PDMA support

From: Christoph Hellwig
Date: Tue Mar 16 2021 - 04:01:14 EST


On Mon, Mar 15, 2021 at 10:33:13AM -0600, Logan Gunthorpe wrote:
> >> + return !ops || ops->flags & DMA_F_PCI_P2PDMA_SUPPORTED;
> >
> > Is this logic correct? I would have expected.
> >
> > return (ops && ops->flags & DMA_F_PCI_P2PDMA_SUPPORTED);
>
>
> If ops is NULL then the operations in kernel/dma/direct.c are used and
> support is added to those in patch 6. So it is correct as written.

It is not quite that easy. There also is the bypass flag and for the
specific case where that is ignored the code needs a really good
comment. And to assist that formatted so that it makes sense. The
above line is indeed highly confusing even if it ends up being correct.