linux-next: manual merge of the akpm-current tree with Linus' tree

From: Stephen Rothwell
Date: Sun Dec 22 2013 - 22:59:20 EST


Hi Andrew,

Today's linux-next merge of the akpm-current tree got conflicts in
include/linux/mm.h and mm/memory.c between commit 597d795a2a78 ("mm: do
not allocate page->ptl dynamically, if spinlock_t fits to long") from
the tree and commit 489bd4be2d70 ("mm: create a separate slab for
page->ptl allocation") from the akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc include/linux/mm.h
index bf362d053ce1,1f232229a451..000000000000
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@@ -1317,7 -1355,8 +1355,8 @@@ static inline pmd_t *pmd_alloc(struct m
#endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */

#if USE_SPLIT_PTE_PTLOCKS
-#if BLOATED_SPINLOCKS
+#if ALLOC_SPLIT_PTLOCKS
+ void __init ptlock_cache_init(void);
extern bool ptlock_alloc(struct page *page);
extern void ptlock_free(struct page *page);

@@@ -1325,7 -1364,8 +1364,8 @@@ static inline spinlock_t *ptlock_ptr(st
{
return page->ptl;
}
-#else /* BLOATED_SPINLOCKS */
+#else /* ALLOC_SPLIT_PTLOCKS */
+ static inline void ptlock_cache_init(void) {}
static inline bool ptlock_alloc(struct page *page)
{
return true;
diff --cc mm/memory.c
index 6768ce9e57d2,cf6098c10084..000000000000
--- a/mm/memory.c
+++ b/mm/memory.c
@@@ -4271,7 -4271,14 +4271,14 @@@ void copy_user_huge_page(struct page *d
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */

-#if USE_SPLIT_PTE_PTLOCKS && BLOATED_SPINLOCKS
+#if USE_SPLIT_PTE_PTLOCKS && ALLOC_SPLIT_PTLOCKS
+ static struct kmem_cache *page_ptl_cachep;
+ void __init ptlock_cache_init(void)
+ {
+ page_ptl_cachep = kmem_cache_create("page->ptl", sizeof(spinlock_t), 0,
+ SLAB_PANIC, NULL);
+ }
+
bool ptlock_alloc(struct page *page)
{
spinlock_t *ptl;

Attachment: pgp00000.pgp
Description: PGP signature