[ARM] xsc3: add highmem support to L2 cache handling code
authorNicolas Pitre <nico@cam.org>
Fri, 19 Sep 2008 02:55:47 +0000 (22:55 -0400)
committerNicolas Pitre <nico@cam.org>
Mon, 16 Mar 2009 01:01:21 +0000 (21:01 -0400)
commit3902a15e784e9b1efa8e6ad246489c609e0ef880
tree8b674544cc2b3381fa9481d2e1e60eb99ef62a71
parent1bb772679ffb0ba1ff1d40d8c6b855ab029f177d
[ARM] xsc3: add highmem support to L2 cache handling code

On xsc3, L2 cache ops are possible only on virtual addresses.  The code
is rearranged so to have a linear progression requiring the least amount
of pte setups in the highmem case.  To protect the virtual mapping so
created, interrupts must be disabled currently up to a page worth of
address range.

The interrupt disabling is done in a way to minimize the overhead within
the inner loop.  The alternative would consist in separate code for
the highmem and non highmem compilation which is less preferable.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
arch/arm/mm/cache-xsc3l2.c