diff options
| author | Tejun Heo <tj@kernel.org> | 2010-12-17 09:47:04 -0500 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2010-12-17 10:13:22 -0500 |
| commit | 403047754cf690b012369b8fb563b738b88086e6 (patch) | |
| tree | d784465cb02ea3898094ad5aa83566fecb6c7046 /include | |
| parent | 8f1d97c79eb65de1d05799d6b81d79cd94169114 (diff) | |
percpu,x86: relocate this_cpu_add_return() and friends
- include/linux/percpu.h: this_cpu_add_return() and friends were
located next to __this_cpu_add_return(). However, the overall
organization is to first group by preemption safeness. Relocate
this_cpu_add_return() and friends to preemption-safe area.
- arch/x86/include/asm/percpu.h: Relocate percpu_add_return_op() after
other more basic operations. Relocate [__]this_cpu_add_return_8()
so that they're first grouped by preemption safeness.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Christoph Lameter <cl@linux.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/percpu.h | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 4d593defc47d..3484e88d93f8 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -417,6 +417,36 @@ do { \ | |||
| 417 | # define this_cpu_xor(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val)) | 417 | # define this_cpu_xor(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val)) |
| 418 | #endif | 418 | #endif |
| 419 | 419 | ||
| 420 | #define _this_cpu_generic_add_return(pcp, val) \ | ||
| 421 | ({ \ | ||
| 422 | typeof(pcp) ret__; \ | ||
| 423 | preempt_disable(); \ | ||
| 424 | __this_cpu_add(pcp, val); \ | ||
| 425 | ret__ = __this_cpu_read(pcp); \ | ||
| 426 | preempt_enable(); \ | ||
| 427 | ret__; \ | ||
| 428 | }) | ||
| 429 | |||
| 430 | #ifndef this_cpu_add_return | ||
| 431 | # ifndef this_cpu_add_return_1 | ||
| 432 | # define this_cpu_add_return_1(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 433 | # endif | ||
| 434 | # ifndef this_cpu_add_return_2 | ||
| 435 | # define this_cpu_add_return_2(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 436 | # endif | ||
| 437 | # ifndef this_cpu_add_return_4 | ||
| 438 | # define this_cpu_add_return_4(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 439 | # endif | ||
| 440 | # ifndef this_cpu_add_return_8 | ||
| 441 | # define this_cpu_add_return_8(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 442 | # endif | ||
| 443 | # define this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val) | ||
| 444 | #endif | ||
| 445 | |||
| 446 | #define this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(val)) | ||
| 447 | #define this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1) | ||
| 448 | #define this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) | ||
| 449 | |||
| 420 | /* | 450 | /* |
| 421 | * Generic percpu operations that do not require preemption handling. | 451 | * Generic percpu operations that do not require preemption handling. |
| 422 | * Either we do not care about races or the caller has the | 452 | * Either we do not care about races or the caller has the |
| @@ -544,36 +574,6 @@ do { \ | |||
| 544 | # define __this_cpu_xor(pcp, val) __pcpu_size_call(__this_cpu_xor_, (pcp), (val)) | 574 | # define __this_cpu_xor(pcp, val) __pcpu_size_call(__this_cpu_xor_, (pcp), (val)) |
| 545 | #endif | 575 | #endif |
| 546 | 576 | ||
| 547 | #define _this_cpu_generic_add_return(pcp, val) \ | ||
| 548 | ({ \ | ||
| 549 | typeof(pcp) ret__; \ | ||
| 550 | preempt_disable(); \ | ||
| 551 | __this_cpu_add(pcp, val); \ | ||
| 552 | ret__ = __this_cpu_read(pcp); \ | ||
| 553 | preempt_enable(); \ | ||
| 554 | ret__; \ | ||
| 555 | }) | ||
| 556 | |||
| 557 | #ifndef this_cpu_add_return | ||
| 558 | # ifndef this_cpu_add_return_1 | ||
| 559 | # define this_cpu_add_return_1(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 560 | # endif | ||
| 561 | # ifndef this_cpu_add_return_2 | ||
| 562 | # define this_cpu_add_return_2(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 563 | # endif | ||
| 564 | # ifndef this_cpu_add_return_4 | ||
| 565 | # define this_cpu_add_return_4(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 566 | # endif | ||
| 567 | # ifndef this_cpu_add_return_8 | ||
| 568 | # define this_cpu_add_return_8(pcp, val) _this_cpu_generic_add_return(pcp, val) | ||
| 569 | # endif | ||
| 570 | # define this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val) | ||
| 571 | #endif | ||
| 572 | |||
| 573 | #define this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(val)) | ||
| 574 | #define this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1) | ||
| 575 | #define this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) | ||
| 576 | |||
| 577 | #define __this_cpu_generic_add_return(pcp, val) \ | 577 | #define __this_cpu_generic_add_return(pcp, val) \ |
| 578 | ({ \ | 578 | ({ \ |
| 579 | __this_cpu_add(pcp, val); \ | 579 | __this_cpu_add(pcp, val); \ |
