From a2dad7e3d65db0e4eecdc89794d845e2ccef2f33 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Aug 2009 09:56:42 +0200 Subject: [PATCH] mm: Replace cgroup_page bit spinlock commit e3cf1fe8ff341a026b2128bb5c06dfbfd218df11 in tip. Bit spinlocks are not working on RT. Replace them. Signed-off-by: Thomas Gleixner Signed-off-by: Paul Gortmaker --- include/linux/page_cgroup.h | 5 +++-- mm/page_cgroup.c | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h index aef22ae..f725d58 100644 --- a/include/linux/page_cgroup.h +++ b/include/linux/page_cgroup.h @@ -12,6 +12,7 @@ */ struct page_cgroup { unsigned long flags; + spinlock_t lock; struct mem_cgroup *mem_cgroup; struct page *page; struct list_head lru; /* per cgroup LRU list */ @@ -91,12 +92,12 @@ static inline enum zone_type page_cgroup_zid(struct page_cgroup *pc) static inline void lock_page_cgroup(struct page_cgroup *pc) { - bit_spin_lock(PCG_LOCK, &pc->flags); + spin_lock(&pc->lock); } static inline void unlock_page_cgroup(struct page_cgroup *pc) { - bit_spin_unlock(PCG_LOCK, &pc->flags); + spin_unlock(&pc->lock); } #else /* CONFIG_CGROUP_MEM_RES_CTLR */ diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c index 6c00814..d1a0982 100644 --- a/mm/page_cgroup.c +++ b/mm/page_cgroup.c @@ -14,6 +14,7 @@ static void __meminit __init_page_cgroup(struct page_cgroup *pc, unsigned long pfn) { pc->flags = 0; + spin_lock_init(&pc->lock); pc->mem_cgroup = NULL; pc->page = pfn_to_page(pfn); INIT_LIST_HEAD(&pc->lru); -- 1.7.0.4