mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-08-01 23:17:49 +00:00
44 lines
1.3 KiB
Diff
44 lines
1.3 KiB
Diff
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Date: Thu, 16 Jul 2020 18:47:50 +0200
|
|
Subject: [PATCH 2/8] mm: slub: Make object_map_lock a raw_spinlock_t
|
|
|
|
The variable object_map is protected by object_map_lock. The lock is always
|
|
acquired in debug code and within already atomic context
|
|
|
|
Make object_map_lock a raw_spinlock_t.
|
|
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
---
|
|
mm/slub.c | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
--- a/mm/slub.c
|
|
+++ b/mm/slub.c
|
|
@@ -436,7 +436,7 @@ static inline bool cmpxchg_double_slab(s
|
|
|
|
#ifdef CONFIG_SLUB_DEBUG
|
|
static unsigned long object_map[BITS_TO_LONGS(MAX_OBJS_PER_PAGE)];
|
|
-static DEFINE_SPINLOCK(object_map_lock);
|
|
+static DEFINE_RAW_SPINLOCK(object_map_lock);
|
|
|
|
/*
|
|
* Determine a map of object in use on a page.
|
|
@@ -452,7 +452,7 @@ static unsigned long *get_map(struct kme
|
|
|
|
VM_BUG_ON(!irqs_disabled());
|
|
|
|
- spin_lock(&object_map_lock);
|
|
+ raw_spin_lock(&object_map_lock);
|
|
|
|
bitmap_zero(object_map, page->objects);
|
|
|
|
@@ -465,7 +465,7 @@ static unsigned long *get_map(struct kme
|
|
static void put_map(unsigned long *map) __releases(&object_map_lock)
|
|
{
|
|
VM_BUG_ON(map != object_map);
|
|
- spin_unlock(&object_map_lock);
|
|
+ raw_spin_unlock(&object_map_lock);
|
|
}
|
|
|
|
static inline unsigned int size_from_object(struct kmem_cache *s)
|