diff options
| -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)) { |
