On Tue, Nov 24, 2020 at 07:20:32AM +0200, Leon Romanovsky wrote: > On Tue, Nov 24, 2020 at 03:34:56AM +0000, Parav Pandit wrote: > > > > > > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > > Sent: Monday, November 23, 2020 7:30 PM > > > > > > On Mon, Nov 23, 2020 at 10:24:00AM +0200, Leon Romanovsky wrote: > > > > From: Parav Pandit <parav@xxxxxxxxxx> > > > > > > > > DMA operation of the IB device is done using ib_device->dma_device. > > > > This is well abstracted using ib_dma APIs. > > > > > > > > Hence, instead of doing open access to parent device, use IB core > > > > provided dma mapping APIs. > > > > > > Why? > > > > > > The ib DMA APIs are for people using verbs, they are only needed to pack things > > > into the ib_sge > > > > > > If you are inside a driver, not using the verbs API, or not using ib_sge, then you > > > should not be using the ib_dma API > > > > > Thanks for clarifying this. Using ib_dma apis make the code clear for dma device access clear and explicit. > > > > > It is an abberation, we should minimize its use. > > Alright. In that case will use the pci_dev as mlx5 driver internally has the knowledge of it and avoid using ib_dma APIs. > > Yeah, let's do v2, although I don't understand the purpose of ib_dma > helpers if ib drivers can't use it. They are for ULPs, not drivers. Drivers are supposed to know how they are doing dma mapping already Jason