Commit 1b8320b6 authored by Minchan Kim's avatar Minchan Kim Committed by Linus Torvalds
Browse files

zsmalloc: use bit_spin_lock

Use kernel standard bit spin-lock instead of custom mess.  Even, it has
a bug which doesn't disable preemption.  The reason we don't have any
problem is that we have used it during preemption disable section by
class->lock spinlock.  So no need to go to stable.


Signed-off-by: default avatarMinchan Kim <>
Reviewed-by: default avatarSergey Senozhatsky <>
Cc: Vlastimil Babka <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 1fc6e27d
......@@ -868,21 +868,17 @@ static unsigned long obj_idx_to_offset(struct page *page,
static inline int trypin_tag(unsigned long handle)
unsigned long *ptr = (unsigned long *)handle;
return !test_and_set_bit_lock(HANDLE_PIN_BIT, ptr);
return bit_spin_trylock(HANDLE_PIN_BIT, (unsigned long *)handle);
static void pin_tag(unsigned long handle)
while (!trypin_tag(handle));
bit_spin_lock(HANDLE_PIN_BIT, (unsigned long *)handle);
static void unpin_tag(unsigned long handle)
unsigned long *ptr = (unsigned long *)handle;
clear_bit_unlock(HANDLE_PIN_BIT, ptr);
bit_spin_unlock(HANDLE_PIN_BIT, (unsigned long *)handle);
static void reset_page(struct page *page)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment