On Sun, Sep 27, 2020 at 07:58:29AM +0000, Sherry Sun wrote:
> Thanks for your reply.
> Can you explain why we cannot use the API and header above in drivers?
> And do you know if there are any APIs that could replace this to check the 
> device hardware dma coherent support?

If your treat the memory as if it is coherent with device access you
should always use dma_alloc_coherent.  The whole point of the DMA API
is to abstract such differences away.

> > 
> > > +                 vdev->vvr[i].vrh.vring.used =
> > > +                         (void __force *)vpdev->hw_ops->remap(
> > 
> > And you must not use __force casts without a comment explanation why
> > they are safe.
> 
> Here is the original code, I moved the original code into the if() without 
> change it.
> But I think  this is because vpdev->hw_ops->remap() return type is void 
> __iomem *, but vring.used need type void *. 
> Maybe this is a workaround for Intel MIC platform, as it reassigns the used 
> ring on the EP side.

Well, we'll need to figure out what is going on here, and blind casts to
and from __iomem are dangerous.

Reply via email to