Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Thu, 30 Mar 2006 20:38:18 +0000 (12:38 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 30 Mar 2006 20:38:18 +0000 (12:38 -0800)
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] ioremap() should prefer WB over UC
  [IA64] Add __mca_table to the DISCARD list in gate.lds
  [IA64] Move __mca_table out of the __init section
  [IA64] simplify some condition checks in iosapic_check_gsi_range
  [IA64] correct some messages and fixes some minor things
  [IA64-SGI] fix for-loop in sn_hwperf_geoid_to_cnode()
  [IA64-SGI] sn_hwperf use of num_online_cpus()
  [IA64] optimize flush_tlb_range on large numa box
  [IA64] lazy_mmu_prot_update needs to be aware of huge pages

1  2 
arch/ia64/mm/init.c

diff --combined arch/ia64/mm/init.c
@@@ -109,6 -109,7 +109,7 @@@ lazy_mmu_prot_update (pte_t pte
  {
        unsigned long addr;
        struct page *page;
+       unsigned long order;
  
        if (!pte_exec(pte))
                return;                         /* not an executable page... */
        if (test_bit(PG_arch_1, &page->flags))
                return;                         /* i-cache is already coherent with d-cache */
  
-       flush_icache_range(addr, addr + PAGE_SIZE);
+       if (PageCompound(page)) {
+               order = (unsigned long) (page[1].lru.prev);
+               flush_icache_range(addr, addr + (1UL << order << PAGE_SHIFT));
+       }
+       else
+               flush_icache_range(addr, addr + PAGE_SIZE);
        set_bit(PG_arch_1, &page->flags);       /* mark page as clean */
  }
  
@@@ -600,7 -606,7 +606,7 @@@ mem_init (void
        kclist_add(&kcore_vmem, (void *)VMALLOC_START, VMALLOC_END-VMALLOC_START);
        kclist_add(&kcore_kernel, _stext, _end - _stext);
  
 -      for_each_pgdat(pgdat)
 +      for_each_online_pgdat(pgdat)
                if (pgdat->bdata->node_bootmem_map)
                        totalram_pages += free_all_bootmem_node(pgdat);