diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/mlock.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/mm/mlock.c b/mm/mlock.c index cbe9e0581b75..749383b442c7 100644 --- a/mm/mlock.c +++ b/mm/mlock.c | |||
@@ -660,21 +660,20 @@ void *alloc_locked_buffer(size_t size) | |||
660 | return buffer; | 660 | return buffer; |
661 | } | 661 | } |
662 | 662 | ||
663 | void release_locked_buffer(void *buffer, size_t size) | 663 | void refund_locked_buffer_memory(struct mm_struct *mm, size_t size) |
664 | { | 664 | { |
665 | unsigned long pgsz = PAGE_ALIGN(size) >> PAGE_SHIFT; | 665 | unsigned long pgsz = PAGE_ALIGN(size) >> PAGE_SHIFT; |
666 | 666 | ||
667 | down_write(¤t->mm->mmap_sem); | 667 | down_write(&mm->mmap_sem); |
668 | 668 | ||
669 | current->mm->total_vm -= pgsz; | 669 | mm->total_vm -= pgsz; |
670 | current->mm->locked_vm -= pgsz; | 670 | mm->locked_vm -= pgsz; |
671 | 671 | ||
672 | up_write(¤t->mm->mmap_sem); | 672 | up_write(&mm->mmap_sem); |
673 | } | 673 | } |
674 | 674 | ||
675 | void free_locked_buffer(void *buffer, size_t size) | 675 | void free_locked_buffer(void *buffer, size_t size) |
676 | { | 676 | { |
677 | release_locked_buffer(buffer, size); | 677 | refund_locked_buffer_memory(current->mm, size); |
678 | |||
679 | kfree(buffer); | 678 | kfree(buffer); |
680 | } | 679 | } |