KAMEZAWA Hiroyuki 954ffcb35f flush icache before set_pte() on ia64: flush icache at set_pte
Current ia64 kernel flushes icache by lazy_mmu_prot_update() *after*
set_pte().  This is too late.  This patch removes lazy_mmu_prot_update and
add modfied set_pte() for flushing if necessary.

This patch flush icache of a page when
	new pte has exec bit.
	&& new pte has present bit
	&& new pte is user's page.
	&& (old *ptep is not present
            || new pte's pfn is not same to old *ptep's ptn)
	&& new pte's page has no Pg_arch_1 bit.
	   Pg_arch_1 is set when a page is cache consistent.

I think this condition checks are much easier to understand than considering
"Where sync_icache_dcache() should be inserted ?".

pte_user() for ia64 was removed by http://lkml.org/lkml/2007/6/12/67 as
clean-up. So, I added it again.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:42:59 -07:00
..
2007-09-01 02:49:57 -07:00
2005-04-16 15:20:36 -07:00
2005-06-07 12:35:43 -07:00
2005-09-07 16:57:21 -07:00
2006-12-12 12:00:55 -08:00
2006-01-08 20:14:02 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-10-15 13:49:43 -07:00
2007-02-05 18:46:40 -08:00
2006-03-26 08:56:54 -08:00
2005-04-16 15:20:36 -07:00
2007-07-17 10:23:11 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-21 11:07:59 -07:00
2007-07-25 12:56:39 -07:00
2005-04-16 15:20:36 -07:00
2006-02-07 08:49:27 -08:00
2006-01-10 08:01:34 -08:00
2005-04-16 15:20:36 -07:00
2007-05-08 11:15:20 -07:00
2006-03-24 13:12:46 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-10-12 15:24:06 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-04-30 13:55:43 -07:00
2005-04-16 15:20:36 -07:00
2007-07-12 16:04:39 -07:00
2005-04-16 15:20:36 -07:00
2005-05-18 16:14:30 -07:00
2007-05-11 09:40:00 -07:00
2007-05-11 08:29:34 -07:00
2007-01-11 18:18:22 -08:00
2007-07-25 12:56:39 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-05-02 19:02:34 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-02-12 09:48:39 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-05-01 08:59:08 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-02-15 13:37:04 -08:00
2005-09-05 00:05:48 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-06-21 18:46:18 -07:00
2007-07-19 13:48:00 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00