Turn DEFINE_STATIC_PERCPU_RWSEM() into __DEFINE_PERCPU_RWSEM() with the additional "is_static" argument to introduce DEFINE_PERCPU_RWSEM(). Change cgroup.c to use DEFINE_PERCPU_RWSEM(cgroup_threadgroup_rwsem).
Showing the changes to include/linux (1 of 2 files). Show all
Unified · Split
| @@ -17,14 +17,18 @@ struct percpu_rw_semaphore { · 16 unmodified lines | ||
| 17 | 17 | int readers_block; |
| 18 | 18 | }; |
| 19 | 19 | |
| 20 | −#define DEFINE_STATIC_PERCPU_RWSEM(name) \ | |
| 20 | +#define __DEFINE_PERCPU_RWSEM(name, is_static) \ | |
| 21 | 21 | static DEFINE_PER_CPU(unsigned int, __percpu_rwsem_rc_##name); \ |
| 22 | −static struct percpu_rw_semaphore name = { \ | |
| 22 | +is_static struct percpu_rw_semaphore name = { \ | |
| 23 | 23 | .rss = __RCU_SYNC_INITIALIZER(name.rss), \ |
| 24 | 24 | .read_count = &__percpu_rwsem_rc_##name, \ |
| 25 | 25 | .rw_sem = __RWSEM_INITIALIZER(name.rw_sem), \ |
| 26 | 26 | .writer = __RCUWAIT_INITIALIZER(name.writer), \ |
| 27 | 27 | } |
| 28 | +#define DEFINE_PERCPU_RWSEM(name) \ | |
| 29 | + __DEFINE_PERCPU_RWSEM(name, /* not static */) | |
| 30 | +#define DEFINE_STATIC_PERCPU_RWSEM(name) \ | |
| 31 | + __DEFINE_PERCPU_RWSEM(name, static) | |
| 28 | 32 | |
| 29 | 33 | extern int __percpu_down_read(struct percpu_rw_semaphore *, int); |
| 30 | 34 | extern void __percpu_up_read(struct percpu_rw_semaphore *); |