Re: USB mass storage and ARM cache coherency

From: James Bottomley
Date: Fri Feb 26 2010 - 00:36:17 EST


On Thu, 2010-02-25 at 08:12 +1100, Benjamin Herrenschmidt wrote:
> On Wed, 2010-02-24 at 08:16 +0100, Oliver Neukum wrote:
> > I don't know. The issue seems quite complex. It would seem better to
> > centralize it as far as practical. Do you have a wrapper drivers could
> > call?
>
> flush_dcache_page() ? :-)

Actually, that can be wrong depending on the implementation. The
problem is incoherency of the kernel page (dirty) with respect to user
space aliases (clean). What has to happen on parisc is that the kernel
alias needs flushing. We can guarantee the userspace aliases to be
clean (and not moved in). We wouldn't want to incur the expense of
flushing the user space pages as well.

> Now, the subsystem might be the one to know whether something is mapped
> into userspace or not (v4l in our case) in which case a wrapper could be
> created.

Right, so it's the responsibility of the API used by the subsystem.
Thus Caitlin's pio_kmap seems the right one ... I don't understand what
the additional problems are.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/