lkml.org 
[lkml]   [2020]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH 1/5] misc: vop: change the way of allocating vring for noncoherent platform
Date
Hi Christoph,

> 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.

Well, for vring and device pages in vop driver, dma coherent memory maybe more reasonable.
Will use dma_alloc_coherent to replace the orginal memory allocate method in V2.

>
> > >
> > > > + 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.

Yes, you are right.

Regards
Sherry

\
 
 \ /
  Last update: 2020-09-28 12:11    [W:0.044 / U:2.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site