Re: [PATCH 12/16] staging/comedi: mark as broken

From: Christoph Hellwig
Date: Fri Jun 14 2019 - 11:39:48 EST


On Fri, Jun 14, 2019 at 05:30:32PM +0200, Greg KH wrote:
> On Fri, Jun 14, 2019 at 04:48:57PM +0200, Christoph Hellwig wrote:
> > On Fri, Jun 14, 2019 at 04:02:39PM +0200, Greg KH wrote:
> > > Perhaps a hint as to how we can fix this up? This is the first time
> > > I've heard of the comedi code not handling dma properly.
> >
> > It can be fixed by:
> >
> > a) never calling virt_to_page (or vmalloc_to_page for that matter)
> > on dma allocation
> > b) never remapping dma allocation with conflicting cache modes
> > (no remapping should be doable after a) anyway).
>
> Ok, fair enough, have any pointers of drivers/core code that does this
> correctly? I can put it on my todo list, but might take a week or so...

Just about everyone else. They just need to remove the vmap and
either do one large allocation, or live with the fact that they need
helpers to access multiple array elements instead of one net vmap,
which most of the users already seem to do anyway, with just a few
using the vmap (which might explain why we didn't see blowups yet).