diff options
author | Tejun Heo <tj@kernel.org> | 2012-08-08 14:10:25 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-08-21 10:28:30 -0400 |
commit | e52b1db37b89b69ceb08b521a808bd2cf4724481 (patch) | |
tree | 9f37d5060e57f1b2746047c204b1c96725463f39 /include/linux/timer.h | |
parent | eec19d1a0d04c80e66eef634f7b8f460f2ca5643 (diff) |
timer: Generalize timer->base flags handling
To prepare for addition of another flag, generalize timer->base flags
handling.
* Rename from TBASE_*_FLAG to TIMER_* and make them LU constants.
* Define and use TIMER_FLAG_MASK for flags masking so that multiple
flags can be handled correctly.
* Don't dereference timer->base directly even if
!tbase_get_deferrable(). All two such places are already passed in
@base, so use it instead.
* Make sure tvec_base's alignment is large enough for timer->base
flags using BUILD_BUG_ON().
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: torvalds@linux-foundation.org
Cc: peterz@infradead.org
Link: http://lkml.kernel.org/r/1344449428-24962-2-git-send-email-tj@kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/timer.h')
-rw-r--r-- | include/linux/timer.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/timer.h b/include/linux/timer.h index 6abd9138beda..cbd32ec4dd15 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h | |||
@@ -58,7 +58,9 @@ extern struct tvec_base boot_tvec_bases; | |||
58 | * the timer will be serviced when the CPU eventually wakes up with a | 58 | * the timer will be serviced when the CPU eventually wakes up with a |
59 | * subsequent non-deferrable timer. | 59 | * subsequent non-deferrable timer. |
60 | */ | 60 | */ |
61 | #define TBASE_DEFERRABLE_FLAG (0x1) | 61 | #define TIMER_DEFERRABLE 0x1LU |
62 | |||
63 | #define TIMER_FLAG_MASK 0x1LU | ||
62 | 64 | ||
63 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ | 65 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ |
64 | .entry = { .prev = TIMER_ENTRY_STATIC }, \ | 66 | .entry = { .prev = TIMER_ENTRY_STATIC }, \ |
@@ -72,7 +74,7 @@ extern struct tvec_base boot_tvec_bases; | |||
72 | } | 74 | } |
73 | 75 | ||
74 | #define TBASE_MAKE_DEFERRED(ptr) ((struct tvec_base *) \ | 76 | #define TBASE_MAKE_DEFERRED(ptr) ((struct tvec_base *) \ |
75 | ((unsigned char *)(ptr) + TBASE_DEFERRABLE_FLAG)) | 77 | ((unsigned char *)(ptr) + TIMER_DEFERRABLE)) |
76 | 78 | ||
77 | #define TIMER_DEFERRED_INITIALIZER(_function, _expires, _data) {\ | 79 | #define TIMER_DEFERRED_INITIALIZER(_function, _expires, _data) {\ |
78 | .entry = { .prev = TIMER_ENTRY_STATIC }, \ | 80 | .entry = { .prev = TIMER_ENTRY_STATIC }, \ |