Hi Christoph, > On Tue, Sep 29, 2020 at 04:44:24PM +0800, Sherry Sun wrote: > > The device page and vring should use consistent memory which are > > allocated by dma_alloc_coherent api, when user space wants to get its > > physical address, virt_to_phys cannot be used, should simply return > > the saved device page dma address by get_dp_dma callback and the vring > > dma address saved in mic_vqconfig. > > More importantly you can't just all virt_to_phys on a return value from > dma_alloc_coherent, so this needs to be folded into patch 1. Okay, will move this change into patch 1. > > > if (!offset) { > > - *pa = virt_to_phys(vpdev->hw_ops->get_dp(vpdev)); > > + if (vpdev->hw_ops->get_dp_dma) > > + *pa = vpdev->hw_ops->get_dp_dma(vpdev); > > + else { > > + dev_err(vop_dev(vdev), "can't get device page > physical address\n"); > > + return -EINVAL; > > + } > > I don't think we need the NULL check here. Wouldn't it also make sense to > return the virtual and DMA address from ->get_dp instead of adding another > method? Do you mean that we should only change the original ->get_dp callback to return virtual and DMA address at the same time, instead of adding the ->get_dp_dma callback? Regards Sherry