[PATCH 2/2] mm/swap: Remove lock_initialized flag from swap_slots_cache

From: Tim Chen
Date: Fri Jul 21 2017 - 18:45:02 EST


We will only reach the lock initialization code
in alloc_swap_slot_cache when the cpu's swap_slots_cache's slots
have not been allocated and swap_slots_cache has not been initialized
previously. So the lock_initialized check is redundant and unnecessary.
Remove lock_initialized flag from swap_slots_cache to save memory.

Reported-by: Wenwei Tao <wenwei.tww@xxxxxxxxxxxxxxx>
Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
---
include/linux/swap_slots.h | 1 -
mm/swap_slots.c | 9 ++++-----
2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/include/linux/swap_slots.h b/include/linux/swap_slots.h
index 6ef92d1..a75c30b 100644
--- a/include/linux/swap_slots.h
+++ b/include/linux/swap_slots.h
@@ -10,7 +10,6 @@
#define THRESHOLD_DEACTIVATE_SWAP_SLOTS_CACHE (2*SWAP_SLOTS_CACHE_SIZE)

struct swap_slots_cache {
- bool lock_initialized;
struct mutex alloc_lock; /* protects slots, nr, cur */
swp_entry_t *slots;
int nr;
diff --git a/mm/swap_slots.c b/mm/swap_slots.c
index 4c5457c..c039e6c 100644
--- a/mm/swap_slots.c
+++ b/mm/swap_slots.c
@@ -140,11 +140,10 @@ static int alloc_swap_slot_cache(unsigned int cpu)
if (cache->slots || cache->slots_ret)
/* cache already allocated */
goto out;
- if (!cache->lock_initialized) {
- mutex_init(&cache->alloc_lock);
- spin_lock_init(&cache->free_lock);
- cache->lock_initialized = true;
- }
+
+ mutex_init(&cache->alloc_lock);
+ spin_lock_init(&cache->free_lock);
+
cache->nr = 0;
cache->cur = 0;
cache->n_ret = 0;
--
2.9.4