Re: [RFC PATCH 2/4] pio-mapping: Add ARM support for the PIOmapping API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2010-02-08 at 16:54 +0000, Russell King wrote:
> On Mon, Feb 08, 2010 at 04:10:21PM +0000, Catalin Marinas wrote:
> > The pio_data_direction could be dropped and use the DMA one. We could
> > also use pio_kmap_read/pio_kmap_write or similar but we have to triple
> > the number of functions, so I prefer the additional argument.
> 
> Do we need to do anything for reading a buffer for PIO _out_ to the
> device?  My understanding is that this has never been a problem.

With PIPT caches there is no need for any flushing on the TO_DEVICE case
but VIPT may need this. As James said, it should already be handled in
the block path (though I haven't found where exactly).

But I added the functions for symmetry anyway.

> The only problem I'm aware of is where PIO writes to the kernel
> mapping of a lowmem pages; highmem pages need the data flushed out
> of the temporary atomic kmap mapping anyway.

If we do cache flushing in kunmap() we wouldn't need an additional cache
flushing for highmem pages, so you can implement pio_kunmap()
accordingly. James' point in a previous e-mail was that he doesn't want
drivers to have "if (!PageHighMem(page))".

Now, the ARM kunmap() function doesn't seem to do any flushing, only
kunmap_atomic(). Do I miss anything?

Also, for PIPT caches we don't actually create any D-cache aliases with
kmap, so I'm not sure why we need to always flush the cache in kunmap().

-- 
Catalin

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

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux