linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / ia64 / sn / kernel / sn2 / cache.c
index 2862cb3..bc3cfa1 100644 (file)
@@ -3,12 +3,11 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  * 
- * Copyright (C) 2001-2003, 2006 Silicon Graphics, Inc. All rights reserved.
+ * Copyright (C) 2001-2003 Silicon Graphics, Inc. All rights reserved.
  *
  */
 #include <linux/module.h>
 #include <asm/pgalloc.h>
-#include <asm/sn/arch.h>
 
 /**
  * sn_flush_all_caches - flush a range of address from all caches (incl. L4)
  * Flush a range of addresses from all caches including L4. 
  * All addresses fully or partially contained within 
  * @flush_addr to @flush_addr + @bytes are flushed
- * from all caches.
+ * from the all caches.
  */
 void
 sn_flush_all_caches(long flush_addr, long bytes)
 {
-       unsigned long addr = flush_addr;
-
-       /* SHub1 requires a cached address */
-       if (is_shub1() && (addr & RGN_BITS) == RGN_BASE(RGN_UNCACHED))
-               addr = (addr - RGN_BASE(RGN_UNCACHED)) + RGN_BASE(RGN_KERNEL);
-
-       flush_icache_range(addr, addr + bytes);
+       flush_icache_range(flush_addr, flush_addr+bytes);
        /*
         * The last call may have returned before the caches
         * were actually flushed, so we call it again to make
         * sure.
         */
-       flush_icache_range(addr, addr + bytes);
+       flush_icache_range(flush_addr, flush_addr+bytes);
        mb();
 }
 EXPORT_SYMBOL(sn_flush_all_caches);