aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mm/dma-mapping.c11
-rw-r--r--drivers/acpi/apei/erst.c6
-rw-r--r--drivers/block/drbd/drbd_bitmap.c26
-rw-r--r--drivers/block/drbd/drbd_int.h3
-rw-r--r--drivers/char/mspec.c15
-rw-r--r--drivers/gpu/drm/drm_hashtab.c5
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_private.h8
-rw-r--r--fs/coda/coda_linux.h3
-rw-r--r--fs/jffs2/build.c8
-rw-r--r--fs/jffs2/fs.c5
-rw-r--r--fs/jffs2/super.c5
-rw-r--r--fs/udf/super.c7
-rw-r--r--ipc/sem.c2
-rw-r--r--ipc/util.c11
-rw-r--r--ipc/util.h2
-rw-r--r--mm/percpu.c18
-rw-r--r--net/ipv4/fib_trie.c4
17 files changed, 36 insertions, 103 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 534a60ae282e..0eca3812527e 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -1200,10 +1200,7 @@ error:
1200 while (i--) 1200 while (i--)
1201 if (pages[i]) 1201 if (pages[i])
1202 __free_pages(pages[i], 0); 1202 __free_pages(pages[i], 0);
1203 if (array_size <= PAGE_SIZE) 1203 kvfree(pages);
1204 kfree(pages);
1205 else
1206 vfree(pages);
1207 return NULL; 1204 return NULL;
1208} 1205}
1209 1206
@@ -1211,7 +1208,6 @@ static int __iommu_free_buffer(struct device *dev, struct page **pages,
1211 size_t size, struct dma_attrs *attrs) 1208 size_t size, struct dma_attrs *attrs)
1212{ 1209{
1213 int count = size >> PAGE_SHIFT; 1210 int count = size >> PAGE_SHIFT;
1214 int array_size = count * sizeof(struct page *);
1215 int i; 1211 int i;
1216 1212
1217 if (dma_get_attr(DMA_ATTR_FORCE_CONTIGUOUS, attrs)) { 1213 if (dma_get_attr(DMA_ATTR_FORCE_CONTIGUOUS, attrs)) {
@@ -1222,10 +1218,7 @@ static int __iommu_free_buffer(struct device *dev, struct page **pages,
1222 __free_pages(pages[i], 0); 1218 __free_pages(pages[i], 0);
1223 } 1219 }
1224 1220
1225 if (array_size <= PAGE_SIZE) 1221 kvfree(pages);
1226 kfree(pages);
1227 else
1228 vfree(pages);
1229 return 0; 1222 return 0;
1230} 1223}
1231 1224
diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
index 6682c5daf742..6e6bc1059301 100644
--- a/drivers/acpi/apei/erst.c
+++ b/drivers/acpi/apei/erst.c
@@ -32,6 +32,7 @@
32#include <linux/hardirq.h> 32#include <linux/hardirq.h>
33#include <linux/pstore.h> 33#include <linux/pstore.h>
34#include <linux/vmalloc.h> 34#include <linux/vmalloc.h>
35#include <linux/mm.h> /* kvfree() */
35#include <acpi/apei.h> 36#include <acpi/apei.h>
36 37
37#include "apei-internal.h" 38#include "apei-internal.h"
@@ -532,10 +533,7 @@ retry:
532 return -ENOMEM; 533 return -ENOMEM;
533 memcpy(new_entries, entries, 534 memcpy(new_entries, entries,
534 erst_record_id_cache.len * sizeof(entries[0])); 535 erst_record_id_cache.len * sizeof(entries[0]));
535 if (erst_record_id_cache.size < PAGE_SIZE) 536 kvfree(entries);
536 kfree(entries);
537 else
538 vfree(entries);
539 erst_record_id_cache.entries = entries = new_entries; 537 erst_record_id_cache.entries = entries = new_entries;
540 erst_record_id_cache.size = new_size; 538 erst_record_id_cache.size = new_size;
541 } 539 }
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 0dabc9b93725..92d6fc020a65 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -364,12 +364,9 @@ static void bm_free_pages(struct page **pages, unsigned long number)
364 } 364 }
365} 365}
366 366
367static void bm_vk_free(void *ptr, int v) 367static inline void bm_vk_free(void *ptr)
368{ 368{
369 if (v) 369 kvfree(ptr);
370 vfree(ptr);
371 else
372 kfree(ptr);
373} 370}
374 371
375/* 372/*
@@ -379,7 +376,7 @@ static struct page **bm_realloc_pages(struct drbd_bitmap *b, unsigned long want)
379{ 376{
380 struct page **old_pages = b->bm_pages; 377 struct page **old_pages = b->bm_pages;
381 struct page **new_pages, *page; 378 struct page **new_pages, *page;
382 unsigned int i, bytes, vmalloced = 0; 379 unsigned int i, bytes;
383 unsigned long have = b->bm_number_of_pages; 380 unsigned long have = b->bm_number_of_pages;
384 381
385 BUG_ON(have == 0 && old_pages != NULL); 382 BUG_ON(have == 0 && old_pages != NULL);
@@ -401,7 +398,6 @@ static struct page **bm_realloc_pages(struct drbd_bitmap *b, unsigned long want)
401 PAGE_KERNEL); 398 PAGE_KERNEL);
402 if (!new_pages) 399 if (!new_pages)
403 return NULL; 400 return NULL;
404 vmalloced = 1;
405 } 401 }
406 402
407 if (want >= have) { 403 if (want >= have) {
@@ -411,7 +407,7 @@ static struct page **bm_realloc_pages(struct drbd_bitmap *b, unsigned long want)
411 page = alloc_page(GFP_NOIO | __GFP_HIGHMEM); 407 page = alloc_page(GFP_NOIO | __GFP_HIGHMEM);
412 if (!page) { 408 if (!page) {
413 bm_free_pages(new_pages + have, i - have); 409 bm_free_pages(new_pages + have, i - have);
414 bm_vk_free(new_pages, vmalloced); 410 bm_vk_free(new_pages);
415 return NULL; 411 return NULL;
416 } 412 }
417 /* we want to know which page it is 413 /* we want to know which page it is
@@ -427,11 +423,6 @@ static struct page **bm_realloc_pages(struct drbd_bitmap *b, unsigned long want)
427 */ 423 */
428 } 424 }
429 425
430 if (vmalloced)
431 b->bm_flags |= BM_P_VMALLOCED;
432 else
433 b->bm_flags &= ~BM_P_VMALLOCED;
434
435 return new_pages; 426 return new_pages;
436} 427}
437 428
@@ -469,7 +460,7 @@ void drbd_bm_cleanup(struct drbd_device *device)
469 if (!expect(device->bitmap)) 460 if (!expect(device->bitmap))
470 return; 461 return;
471 bm_free_pages(device->bitmap->bm_pages, device->bitmap->bm_number_of_pages); 462 bm_free_pages(device->bitmap->bm_pages, device->bitmap->bm_number_of_pages);
472 bm_vk_free(device->bitmap->bm_pages, (BM_P_VMALLOCED & device->bitmap->bm_flags)); 463 bm_vk_free(device->bitmap->bm_pages);
473 kfree(device->bitmap); 464 kfree(device->bitmap);
474 device->bitmap = NULL; 465 device->bitmap = NULL;
475} 466}
@@ -643,7 +634,6 @@ int drbd_bm_resize(struct drbd_device *device, sector_t capacity, int set_new_bi
643 unsigned long want, have, onpages; /* number of pages */ 634 unsigned long want, have, onpages; /* number of pages */
644 struct page **npages, **opages = NULL; 635 struct page **npages, **opages = NULL;
645 int err = 0, growing; 636 int err = 0, growing;
646 int opages_vmalloced;
647 637
648 if (!expect(b)) 638 if (!expect(b))
649 return -ENOMEM; 639 return -ENOMEM;
@@ -656,8 +646,6 @@ int drbd_bm_resize(struct drbd_device *device, sector_t capacity, int set_new_bi
656 if (capacity == b->bm_dev_capacity) 646 if (capacity == b->bm_dev_capacity)
657 goto out; 647 goto out;
658 648
659 opages_vmalloced = (BM_P_VMALLOCED & b->bm_flags);
660
661 if (capacity == 0) { 649 if (capacity == 0) {
662 spin_lock_irq(&b->bm_lock); 650 spin_lock_irq(&b->bm_lock);
663 opages = b->bm_pages; 651 opages = b->bm_pages;
@@ -671,7 +659,7 @@ int drbd_bm_resize(struct drbd_device *device, sector_t capacity, int set_new_bi
671 b->bm_dev_capacity = 0; 659 b->bm_dev_capacity = 0;
672 spin_unlock_irq(&b->bm_lock); 660 spin_unlock_irq(&b->bm_lock);
673 bm_free_pages(opages, onpages); 661 bm_free_pages(opages, onpages);
674 bm_vk_free(opages, opages_vmalloced); 662 bm_vk_free(opages);
675 goto out; 663 goto out;
676 } 664 }
677 bits = BM_SECT_TO_BIT(ALIGN(capacity, BM_SECT_PER_BIT)); 665 bits = BM_SECT_TO_BIT(ALIGN(capacity, BM_SECT_PER_BIT));
@@ -744,7 +732,7 @@ int drbd_bm_resize(struct drbd_device *device, sector_t capacity, int set_new_bi
744 732
745 spin_unlock_irq(&b->bm_lock); 733 spin_unlock_irq(&b->bm_lock);
746 if (opages != npages) 734 if (opages != npages)
747 bm_vk_free(opages, opages_vmalloced); 735 bm_vk_free(opages);