Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1127e40 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 5abc97aa c1c57d76
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ SECTIONS
	*(.dynbss)
	*(.bss .bss.* .gnu.linkonce.b.*)
	*(__ex_table)
	*(__mca_table)
  }
}

+162 −103

File changed.

Preview size limit exceeded, changes collapsed.

+9 −9
Original line number Diff line number Diff line
@@ -70,6 +70,15 @@ SECTIONS
	  __stop___ex_table = .;
	}

  /* MCA table */
  . = ALIGN(16);
  __mca_table : AT(ADDR(__mca_table) - LOAD_OFFSET)
	{
	  __start___mca_table = .;
	  *(__mca_table)
	  __stop___mca_table = .;
	}

  /* Global data */
  _data = .;

@@ -130,15 +139,6 @@ SECTIONS
	  __initcall_end = .;
	}

  /* MCA table */
  . = ALIGN(16);
  __mca_table : AT(ADDR(__mca_table) - LOAD_OFFSET)
	{
	  __start___mca_table = .;
	  *(__mca_table)
	  __stop___mca_table = .;
	}

  .data.patch.vtop : AT(ADDR(.data.patch.vtop) - LOAD_OFFSET)
	{
	  __start___vtop_patchlist = .;
+7 −1
Original line number Diff line number Diff line
@@ -109,6 +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... */
@@ -119,6 +120,11 @@ lazy_mmu_prot_update (pte_t pte)
	if (test_bit(PG_arch_1, &page->flags))
		return;				/* i-cache is already coherent with d-cache */

	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 */
}
+3 −3
Original line number Diff line number Diff line
@@ -21,12 +21,12 @@ __ioremap (unsigned long offset, unsigned long size)
void __iomem *
ioremap (unsigned long offset, unsigned long size)
{
	if (efi_mem_attribute_range(offset, size, EFI_MEMORY_UC))
		return __ioremap(offset, size);

	if (efi_mem_attribute_range(offset, size, EFI_MEMORY_WB))
		return phys_to_virt(offset);

	if (efi_mem_attribute_range(offset, size, EFI_MEMORY_UC))
		return __ioremap(offset, size);

	/*
	 * Someday this should check ACPI resources so we
	 * can do the right thing for hot-plugged regions.
Loading