2008-07-19 21:40:05

by Joel Soete

[permalink] [raw]
Subject: [PATCH] ccio_clear_io_tlb() don't need to compute io page number a second time.

Hello Kyle,

In ccio-dma.c, I noticed that eventhought the prototype of the function ccio_clear_io_tlb() is:
static CCIO_INLINE void
ccio_clear_io_tlb(struct ioc *ioc, dma_addr_t iovp, size_t byte_cnt)

i.e. the second arg being iovp (afaik the io virtual page number) deduced from the iova (io virtual address)

it's so useless to:
iovp &= IOVP_MASK; /* clear offset bits, just want pagenum */

and the only place where it's called is:
ccio_clear_io_tlb(ioc, CCIO_IOVP(iova), saved_byte_cnt);

it's well an iovp given the macro definition:
#define CCIO_IOVP(iova) ((iova) & IOVP_MASK)

May I so suggest following patch:
--- a/drivers/parisc/ccio-dma.c 2008-07-19 21:17:37.000000000 +0000
+++ b/drivers/parisc/ccio-dma.c 2008-07-19 21:32:54.000000000 +0000
@@ -643,7 +643,6 @@
{
u32 chain_size = 1 << ioc->chainid_shift;

- iovp &= IOVP_MASK; /* clear offset bits, just want pagenum */
byte_cnt += chain_size;

while(byte_cnt > chain_size) {
=== <> ===

Tia,
J.


2008-07-20 02:27:52

by Kyle McMartin

[permalink] [raw]
Subject: Re: [PATCH] ccio_clear_io_tlb() don't need to compute io page number a second time.

On Sat, Jul 19, 2008 at 09:34:08PM +0000, Joel Soete wrote:
> --- a/drivers/parisc/ccio-dma.c 2008-07-19 21:17:37.000000000 +0000
> +++ b/drivers/parisc/ccio-dma.c 2008-07-19 21:32:54.000000000 +0000
> @@ -643,7 +643,6 @@
> {
> u32 chain_size = 1 << ioc->chainid_shift;
>
> - iovp &= IOVP_MASK; /* clear offset bits, just want pagenum */
> byte_cnt += chain_size;
>
> while(byte_cnt > chain_size) {

applied.