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

Reply via email to