diff options
| -rw-r--r-- | arch/arm/mm/dma-mapping.c | 11 | ||||
| -rw-r--r-- | drivers/acpi/apei/erst.c | 6 | ||||
| -rw-r--r-- | drivers/block/drbd/drbd_bitmap.c | 26 | ||||
| -rw-r--r-- | drivers/block/drbd/drbd_int.h | 3 | ||||
| -rw-r--r-- | drivers/char/mspec.c | 15 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_hashtab.c | 5 | ||||
| -rw-r--r-- | drivers/staging/lustre/include/linux/libcfs/libcfs_private.h | 8 | ||||
| -rw-r--r-- | fs/coda/coda_linux.h | 3 | ||||
| -rw-r--r-- | fs/jffs2/build.c | 8 | ||||
| -rw-r--r-- | fs/jffs2/fs.c | 5 | ||||
| -rw-r--r-- | fs/jffs2/super.c | 5 | ||||
| -rw-r--r-- | fs/udf/super.c | 7 | ||||
| -rw-r--r-- | ipc/sem.c | 2 | ||||
| -rw-r--r-- | ipc/util.c | 11 | ||||
| -rw-r--r-- | ipc/util.h | 2 | ||||
| -rw-r--r-- | mm/percpu.c | 18 | ||||
| -rw-r--r-- | net/ipv4/fib_trie.c | 4 |
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 | ||
| 367 | static void bm_vk_free(void *ptr, int v) | 367 | static 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); |
