aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2007-05-06 14:49:02 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-07 12:12:51 -0700
commit5f22df00a009e3f86301366c0ecddb63ebd22af9 (patch)
tree72f0ea3e114dbb6825fc7e73f828645d364ea520
parentd2ba27e8007b35d24764c0877ab2428e00a5c5ab (diff)
downloadkernel_samsung_espresso10-5f22df00a009e3f86301366c0ecddb63ebd22af9.zip
kernel_samsung_espresso10-5f22df00a009e3f86301366c0ecddb63ebd22af9.tar.gz
kernel_samsung_espresso10-5f22df00a009e3f86301366c0ecddb63ebd22af9.tar.bz2
mm: remove gcc workaround
Minimum gcc version is 3.2 now. However, with likely profiling, even modern gcc versions cannot always eliminate the call. Replace the placeholder functions with the more conventional empty static inlines, which should be optimal for everyone. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/mm.h18
-rw-r--r--mm/memory.c12
2 files changed, 18 insertions, 12 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 7bf0bd8..c95d96e 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -850,8 +850,26 @@ static inline int vma_wants_writenotify(struct vm_area_struct *vma)
extern pte_t *FASTCALL(get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl));
+#ifdef __PAGETABLE_PUD_FOLDED
+static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
+ unsigned long address)
+{
+ return 0;
+}
+#else
int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
+#endif
+
+#ifdef __PAGETABLE_PMD_FOLDED
+static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
+ unsigned long address)
+{
+ return 0;
+}
+#else
int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
+#endif
+
int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
diff --git a/mm/memory.c b/mm/memory.c
index 044feb7e..c252aae 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2633,12 +2633,6 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
spin_unlock(&mm->page_table_lock);
return 0;
}
-#else
-/* Workaround for gcc 2.96 */
-int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
-{
- return 0;
-}
#endif /* __PAGETABLE_PUD_FOLDED */
#ifndef __PAGETABLE_PMD_FOLDED
@@ -2667,12 +2661,6 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
spin_unlock(&mm->page_table_lock);
return 0;
}
-#else
-/* Workaround for gcc 2.96 */
-int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
-{
- return 0;
-}
#endif /* __PAGETABLE_PMD_FOLDED */
int make_pages_present(unsigned long addr, unsigned long end)