Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 15 Nov 2013 05:16:30 +0000 (14:16 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 15 Nov 2013 05:16:30 +0000 (14:16 +0900)
Pull sparc update from David Miller:

 1) Implement support for up to 47-bit physical addresses on sparc64.

 2) Support HAVE_CONTEXT_TRACKING on sparc64, from Kirill Tkhai.

 3) Fix Simba bridge window calculations, from Kjetil Oftedal.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
  sparc64: Implement HAVE_CONTEXT_TRACKING
  sparc64: Add self-IPI support for smp_send_reschedule()
  sparc: PCI: Fix incorrect address calculation of PCI Bridge windows on Simba-bridges
  sparc64: Encode huge PMDs using PTE encoding.
  sparc64: Move to 64-bit PGDs and PMDs.
  sparc64: Move from 4MB to 8MB huge pages.
  sparc64: Make PAGE_OFFSET variable.
  sparc64: Fix inconsistent max-physical-address defines.
  sparc64: Document the shift counts used to validate linear kernel addresses.
  sparc64: Define PAGE_OFFSET in terms of physical address bits.
  sparc64: Use PAGE_OFFSET instead of a magic constant.
  sparc64: Clean up 64-bit mmap exclusion defines.

1  2 
arch/sparc/Kconfig
arch/sparc/mm/init_64.c
arch/sparc/mm/tlb.c

Simple merge
index d6de9353ee118de51f7a1948b8ab3b4d366b3b44,bd6430ded69fadee575646e8cee15235f06a1bf7..6b643790e4fe016105b9525c5ae77d07c5f20512
@@@ -2511,21 -2563,16 +2563,17 @@@ pte_t *pte_alloc_one_kernel(struct mm_s
  pgtable_t pte_alloc_one(struct mm_struct *mm,
                        unsigned long address)
  {
-       struct page *page;
-       pte_t *pte;
-       pte = get_from_cache(mm);
-       if (pte)
-               return pte;
+       struct page *page = alloc_page(GFP_KERNEL | __GFP_NOTRACK |
+                                      __GFP_REPEAT | __GFP_ZERO);
+       pte_t *pte = NULL;
  
-       page = __alloc_for_cache(mm);
 -      if (page) {
 -              pgtable_page_ctor(page);
 -              pte = (pte_t *) page_address(page);
 +      if (!page)
 +              return NULL;
 +      if (!pgtable_page_ctor(page)) {
 +              free_hot_cold_page(page, 0);
 +              return NULL;
        }
 -
 -      return pte;
 +      return (pte_t *) page_address(page);
  }
  
  void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
Simple merge