diff options
| author | Tejun Heo <tj@kernel.org> | 2012-04-01 15:30:01 -0400 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2012-04-01 15:55:00 -0400 |
| commit | 959d851caa48829eb85cb85aa949fd6b4c5d5bc6 (patch) | |
| tree | 3ba9c94ec346275fb44c4f0d1cd2537cdff8d811 /include/linux/percpu.h | |
| parent | a5567932fc926739e29e98487128080f40c61710 (diff) | |
| parent | 48ddbe194623ae089cc0576e60363f2d2e85662a (diff) | |
Merge branch 'for-3.5' of ../cgroup into block/for-3.5/core-merged
cgroup/for-3.5 contains the following changes which blk-cgroup needs
to proceed with the on-going cleanup.
* Dynamic addition and removal of cftypes to make config/stat file
handling modular for policies.
* cgroup removal update to not wait for css references to drain to fix
blkcg removal hang caused by cfq caching cfqgs.
Pull in cgroup/for-3.5 into block/for-3.5/core. This causes the
following conflicts in block/blk-cgroup.c.
* 761b3ef50e "cgroup: remove cgroup_subsys argument from callbacks"
conflicts with blkiocg_pre_destroy() addition and blkiocg_attach()
removal. Resolved by removing @subsys from all subsys methods.
* 676f7c8f84 "cgroup: relocate cftype and cgroup_subsys definitions in
controllers" conflicts with ->pre_destroy() and ->attach() updates
and removal of modular config. Resolved by dropping forward
declarations of the methods and applying updates to the relocated
blkio_subsys.
* 4baf6e3325 "cgroup: convert all non-memcg controllers to the new
cftype interface" builds upon the previous item. Resolved by adding
->base_cftypes to the relocated blkio_subsys.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/percpu.h')
| -rw-r--r-- | include/linux/percpu.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 32cd1f67462..21638ae14e0 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -348,9 +348,9 @@ do { \ | |||
| 348 | #define _this_cpu_generic_to_op(pcp, val, op) \ | 348 | #define _this_cpu_generic_to_op(pcp, val, op) \ |
| 349 | do { \ | 349 | do { \ |
| 350 | unsigned long flags; \ | 350 | unsigned long flags; \ |
| 351 | local_irq_save(flags); \ | 351 | raw_local_irq_save(flags); \ |
| 352 | *__this_cpu_ptr(&(pcp)) op val; \ | 352 | *__this_cpu_ptr(&(pcp)) op val; \ |
| 353 | local_irq_restore(flags); \ | 353 | raw_local_irq_restore(flags); \ |
| 354 | } while (0) | 354 | } while (0) |
| 355 | 355 | ||
| 356 | #ifndef this_cpu_write | 356 | #ifndef this_cpu_write |
| @@ -449,10 +449,10 @@ do { \ | |||
| 449 | ({ \ | 449 | ({ \ |
| 450 | typeof(pcp) ret__; \ | 450 | typeof(pcp) ret__; \ |
| 451 | unsigned long flags; \ | 451 | unsigned long flags; \ |
| 452 | local_irq_save(flags); \ | 452 | raw_local_irq_save(flags); \ |
| 453 | __this_cpu_add(pcp, val); \ | 453 | __this_cpu_add(pcp, val); \ |
| 454 | ret__ = __this_cpu_read(pcp); \ | 454 | ret__ = __this_cpu_read(pcp); \ |
| 455 | local_irq_restore(flags); \ | 455 | raw_local_irq_restore(flags); \ |
| 456 | ret__; \ | 456 | ret__; \ |
| 457 | }) | 457 | }) |
| 458 | 458 | ||
| @@ -479,10 +479,10 @@ do { \ | |||
| 479 | #define _this_cpu_generic_xchg(pcp, nval) \ | 479 | #define _this_cpu_generic_xchg(pcp, nval) \ |
| 480 | ({ typeof(pcp) ret__; \ | 480 | ({ typeof(pcp) ret__; \ |
| 481 | unsigned long flags; \ | 481 | unsigned long flags; \ |
| 482 | local_irq_save(flags); \ | 482 | raw_local_irq_save(flags); \ |
| 483 | ret__ = __this_cpu_read(pcp); \ | 483 | ret__ = __this_cpu_read(pcp); \ |
| 484 | __this_cpu_write(pcp, nval); \ | 484 | __this_cpu_write(pcp, nval); \ |
| 485 | local_irq_restore(flags); \ | 485 | raw_local_irq_restore(flags); \ |
| 486 | ret__; \ | 486 | ret__; \ |
| 487 | }) | 487 | }) |
| 488 | 488 | ||
| @@ -507,11 +507,11 @@ do { \ | |||
| 507 | ({ \ | 507 | ({ \ |
| 508 | typeof(pcp) ret__; \ | 508 | typeof(pcp) ret__; \ |
| 509 | unsigned long flags; \ | 509 | unsigned long flags; \ |
| 510 | local_irq_save(flags); \ | 510 | raw_local_irq_save(flags); \ |
| 511 | ret__ = __this_cpu_read(pcp); \ | 511 | ret__ = __this_cpu_read(pcp); \ |
| 512 | if (ret__ == (oval)) \ | 512 | if (ret__ == (oval)) \ |
| 513 | __this_cpu_write(pcp, nval); \ | 513 | __this_cpu_write(pcp, nval); \ |
| 514 | local_irq_restore(flags); \ | 514 | raw_local_irq_restore(flags); \ |
| 515 | ret__; \ | 515 | ret__; \ |
| 516 | }) | 516 | }) |
| 517 | 517 | ||
| @@ -544,10 +544,10 @@ do { \ | |||
| 544 | ({ \ | 544 | ({ \ |
| 545 | int ret__; \ | 545 | int ret__; \ |
| 546 | unsigned long flags; \ | 546 | unsigned long flags; \ |
| 547 | local_irq_save(flags); \ | 547 | raw_local_irq_save(flags); \ |
| 548 | ret__ = __this_cpu_generic_cmpxchg_double(pcp1, pcp2, \ | 548 | ret__ = __this_cpu_generic_cmpxchg_double(pcp1, pcp2, \ |
| 549 | oval1, oval2, nval1, nval2); \ | 549 | oval1, oval2, nval1, nval2); \ |
| 550 | local_irq_restore(flags); \ | 550 | raw_local_irq_restore(flags); \ |
| 551 | ret__; \ | 551 | ret__; \ |
| 552 | }) | 552 | }) |
| 553 | 553 | ||
| @@ -718,12 +718,13 @@ do { \ | |||
| 718 | # ifndef __this_cpu_add_return_8 | 718 | # ifndef __this_cpu_add_return_8 |
| 719 | # define __this_cpu_add_return_8(pcp, val) __this_cpu_generic_add_return(pcp, val) | 719 | # define __this_cpu_add_return_8(pcp, val) __this_cpu_generic_add_return(pcp, val) |
| 720 | # endif | 720 | # endif |
| 721 | # define __this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val) | 721 | # define __this_cpu_add_return(pcp, val) \ |
| 722 | __pcpu_size_call_return2(__this_cpu_add_return_, pcp, val) | ||
| 722 | #endif | 723 | #endif |
| 723 | 724 | ||
| 724 | #define __this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(val)) | 725 | #define __this_cpu_sub_return(pcp, val) __this_cpu_add_return(pcp, -(val)) |
| 725 | #define __this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1) | 726 | #define __this_cpu_inc_return(pcp) __this_cpu_add_return(pcp, 1) |
| 726 | #define __this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) | 727 | #define __this_cpu_dec_return(pcp) __this_cpu_add_return(pcp, -1) |
| 727 | 728 | ||
| 728 | #define __this_cpu_generic_xchg(pcp, nval) \ | 729 | #define __this_cpu_generic_xchg(pcp, nval) \ |
| 729 | ({ typeof(pcp) ret__; \ | 730 | ({ typeof(pcp) ret__; \ |
