diff options
| -rw-r--r-- | arch/x86/include/asm/percpu.h | 8 | ||||
| -rw-r--r-- | include/linux/percpu.h | 32 | ||||
| -rw-r--r-- | mm/percpu.c | 5 |
3 files changed, 3 insertions, 42 deletions
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h index b3e18f800302..94220d14d5cc 100644 --- a/arch/x86/include/asm/percpu.h +++ b/arch/x86/include/asm/percpu.h | |||
| @@ -378,9 +378,6 @@ do { \ | |||
| 378 | #define __this_cpu_or_1(pcp, val) percpu_to_op("or", (pcp), val) | 378 | #define __this_cpu_or_1(pcp, val) percpu_to_op("or", (pcp), val) |
| 379 | #define __this_cpu_or_2(pcp, val) percpu_to_op("or", (pcp), val) | 379 | #define __this_cpu_or_2(pcp, val) percpu_to_op("or", (pcp), val) |
| 380 | #define __this_cpu_or_4(pcp, val) percpu_to_op("or", (pcp), val) | 380 | #define __this_cpu_or_4(pcp, val) percpu_to_op("or", (pcp), val) |
| 381 | #define __this_cpu_xor_1(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 382 | #define __this_cpu_xor_2(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 383 | #define __this_cpu_xor_4(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 384 | #define __this_cpu_xchg_1(pcp, val) percpu_xchg_op(pcp, val) | 381 | #define __this_cpu_xchg_1(pcp, val) percpu_xchg_op(pcp, val) |
| 385 | #define __this_cpu_xchg_2(pcp, val) percpu_xchg_op(pcp, val) | 382 | #define __this_cpu_xchg_2(pcp, val) percpu_xchg_op(pcp, val) |
| 386 | #define __this_cpu_xchg_4(pcp, val) percpu_xchg_op(pcp, val) | 383 | #define __this_cpu_xchg_4(pcp, val) percpu_xchg_op(pcp, val) |
| @@ -400,9 +397,6 @@ do { \ | |||
| 400 | #define this_cpu_or_1(pcp, val) percpu_to_op("or", (pcp), val) | 397 | #define this_cpu_or_1(pcp, val) percpu_to_op("or", (pcp), val) |
| 401 | #define this_cpu_or_2(pcp, val) percpu_to_op("or", (pcp), val) | 398 | #define this_cpu_or_2(pcp, val) percpu_to_op("or", (pcp), val) |
| 402 | #define this_cpu_or_4(pcp, val) percpu_to_op("or", (pcp), val) | 399 | #define this_cpu_or_4(pcp, val) percpu_to_op("or", (pcp), val) |
| 403 | #define this_cpu_xor_1(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 404 | #define this_cpu_xor_2(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 405 | #define this_cpu_xor_4(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 406 | #define this_cpu_xchg_1(pcp, nval) percpu_xchg_op(pcp, nval) | 400 | #define this_cpu_xchg_1(pcp, nval) percpu_xchg_op(pcp, nval) |
| 407 | #define this_cpu_xchg_2(pcp, nval) percpu_xchg_op(pcp, nval) | 401 | #define this_cpu_xchg_2(pcp, nval) percpu_xchg_op(pcp, nval) |
| 408 | #define this_cpu_xchg_4(pcp, nval) percpu_xchg_op(pcp, nval) | 402 | #define this_cpu_xchg_4(pcp, nval) percpu_xchg_op(pcp, nval) |
| @@ -447,7 +441,6 @@ do { \ | |||
| 447 | #define __this_cpu_add_8(pcp, val) percpu_add_op((pcp), val) | 441 | #define __this_cpu_add_8(pcp, val) percpu_add_op((pcp), val) |
| 448 | #define __this_cpu_and_8(pcp, val) percpu_to_op("and", (pcp), val) | 442 | #define __this_cpu_and_8(pcp, val) percpu_to_op("and", (pcp), val) |
| 449 | #define __this_cpu_or_8(pcp, val) percpu_to_op("or", (pcp), val) | 443 | #define __this_cpu_or_8(pcp, val) percpu_to_op("or", (pcp), val) |
| 450 | #define __this_cpu_xor_8(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 451 | #define __this_cpu_add_return_8(pcp, val) percpu_add_return_op(pcp, val) | 444 | #define __this_cpu_add_return_8(pcp, val) percpu_add_return_op(pcp, val) |
| 452 | #define __this_cpu_xchg_8(pcp, nval) percpu_xchg_op(pcp, nval) | 445 | #define __this_cpu_xchg_8(pcp, nval) percpu_xchg_op(pcp, nval) |
| 453 | #define __this_cpu_cmpxchg_8(pcp, oval, nval) percpu_cmpxchg_op(pcp, oval, nval) | 446 | #define __this_cpu_cmpxchg_8(pcp, oval, nval) percpu_cmpxchg_op(pcp, oval, nval) |
| @@ -457,7 +450,6 @@ do { \ | |||
| 457 | #define this_cpu_add_8(pcp, val) percpu_add_op((pcp), val) | 450 | #define this_cpu_add_8(pcp, val) percpu_add_op((pcp), val) |
| 458 | #define this_cpu_and_8(pcp, val) percpu_to_op("and", (pcp), val) | 451 | #define this_cpu_and_8(pcp, val) percpu_to_op("and", (pcp), val) |
| 459 | #define this_cpu_or_8(pcp, val) percpu_to_op("or", (pcp), val) | 452 | #define this_cpu_or_8(pcp, val) percpu_to_op("or", (pcp), val) |
| 460 | #define this_cpu_xor_8(pcp, val) percpu_to_op("xor", (pcp), val) | ||
| 461 | #define this_cpu_add_return_8(pcp, val) percpu_add_return_op(pcp, val) | 453 | #define this_cpu_add_return_8(pcp, val) percpu_add_return_op(pcp, val) |
| 462 | #define this_cpu_xchg_8(pcp, nval) percpu_xchg_op(pcp, nval) | 454 | #define this_cpu_xchg_8(pcp, nval) percpu_xchg_op(pcp, nval) |
| 463 | #define this_cpu_cmpxchg_8(pcp, oval, nval) percpu_cmpxchg_op(pcp, oval, nval) | 455 | #define this_cpu_cmpxchg_8(pcp, oval, nval) percpu_cmpxchg_op(pcp, oval, nval) |
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index c74088ab103b..9e4761caa80c 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -375,22 +375,6 @@ do { \ | |||
| 375 | # define this_cpu_or(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val)) | 375 | # define this_cpu_or(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val)) |
| 376 | #endif | 376 | #endif |
| 377 | 377 | ||
| 378 | #ifndef this_cpu_xor | ||
| 379 | # ifndef this_cpu_xor_1 | ||
| 380 | # define this_cpu_xor_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 381 | # endif | ||
| 382 | # ifndef this_cpu_xor_2 | ||
| 383 | # define this_cpu_xor_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 384 | # endif | ||
| 385 | # ifndef this_cpu_xor_4 | ||
| 386 | # define this_cpu_xor_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 387 | # endif | ||
| 388 | # ifndef this_cpu_xor_8 | ||
| 389 | # define this_cpu_xor_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 390 | # endif | ||
| 391 | # define this_cpu_xor(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val)) | ||
| 392 | #endif | ||
| 393 | |||
| 394 | #define _this_cpu_generic_add_return(pcp, val) \ | 378 | #define _this_cpu_generic_add_return(pcp, val) \ |
| 395 | ({ \ | 379 | ({ \ |
| 396 | typeof(pcp) ret__; \ | 380 | typeof(pcp) ret__; \ |
| @@ -629,22 +613,6 @@ do { \ | |||
| 629 | # define __this_cpu_or(pcp, val) __pcpu_size_call(__this_cpu_or_, (pcp), (val)) | 613 | # define __this_cpu_or(pcp, val) __pcpu_size_call(__this_cpu_or_, (pcp), (val)) |
| 630 | #endif | 614 | #endif |
| 631 | 615 | ||
| 632 | #ifndef __this_cpu_xor | ||
| 633 | # ifndef __this_cpu_xor_1 | ||
| 634 | # define __this_cpu_xor_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 635 | # endif | ||
| 636 | # ifndef __this_cpu_xor_2 | ||
| 637 | # define __this_cpu_xor_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 638 | # endif | ||
| 639 | # ifndef __this_cpu_xor_4 | ||
| 640 | # define __this_cpu_xor_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 641 | # endif | ||
| 642 | # ifndef __this_cpu_xor_8 | ||
| 643 | # define __this_cpu_xor_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=) | ||
| 644 | # endif | ||
| 645 | # define __this_cpu_xor(pcp, val) __pcpu_size_call(__this_cpu_xor_, (pcp), (val)) | ||
| 646 | #endif | ||
| 647 | |||
| 648 | #define __this_cpu_generic_add_return(pcp, val) \ | 616 | #define __this_cpu_generic_add_return(pcp, val) \ |
| 649 | ({ \ | 617 | ({ \ |
| 650 | __this_cpu_add(pcp, val); \ | 618 | __this_cpu_add(pcp, val); \ |
diff --git a/mm/percpu.c b/mm/percpu.c index 8c8e08f3a692..0d10defe951e 100644 --- a/mm/percpu.c +++ b/mm/percpu.c | |||
| @@ -1706,8 +1706,9 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size, | |||
| 1706 | 1706 | ||
| 1707 | out_free_areas: | 1707 | out_free_areas: |
| 1708 | for (group = 0; group < ai->nr_groups; group++) | 1708 | for (group = 0; group < ai->nr_groups; group++) |
| 1709 | free_fn(areas[group], | 1709 | if (areas[group]) |
| 1710 | ai->groups[group].nr_units * ai->unit_size); | 1710 | free_fn(areas[group], |
| 1711 | ai->groups[group].nr_units * ai->unit_size); | ||
| 1711 | out_free: | 1712 | out_free: |
| 1712 | pcpu_free_alloc_info(ai); | 1713 | pcpu_free_alloc_info(ai); |
| 1713 | if (areas) | 1714 | if (areas) |
