diff options
Diffstat (limited to 'mm/slob.c')
-rw-r--r-- | mm/slob.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -393,10 +393,11 @@ static void slob_free(void *block, int size) | |||
393 | /* Go directly to page allocator. Do not pass slob allocator */ | 393 | /* Go directly to page allocator. Do not pass slob allocator */ |
394 | if (slob_page_free(sp)) | 394 | if (slob_page_free(sp)) |
395 | clear_slob_page_free(sp); | 395 | clear_slob_page_free(sp); |
396 | spin_unlock_irqrestore(&slob_lock, flags); | ||
396 | clear_slob_page(sp); | 397 | clear_slob_page(sp); |
397 | free_slob_page(sp); | 398 | free_slob_page(sp); |
398 | free_page((unsigned long)b); | 399 | free_page((unsigned long)b); |
399 | goto out; | 400 | return; |
400 | } | 401 | } |
401 | 402 | ||
402 | if (!slob_page_free(sp)) { | 403 | if (!slob_page_free(sp)) { |