Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1225667
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too |
| Date | 2015-09-16 04:00 +0200 |
| Message-ID | <q9aaS-6Rm-9@gated-at.bofh.it> (permalink) |
| References | <q9aaS-6Rm-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
static_key_enabled() can be used on struct static_key but not on its
wrapper types static_key_true and static_key_false. The function is
useful for debugging and management of static keys. Update it so that
it can be used for the wrapper types too.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
Hello,
If this patch is acceptable, please let me know how it should be
routed.
Thanks.
include/linux/jump_label.h | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 7f653e8..c9ca050 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -216,11 +216,6 @@ static inline int jump_label_apply_nops(struct module *mod)
#define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
#define jump_label_enabled static_key_enabled
-static inline bool static_key_enabled(struct static_key *key)
-{
- return static_key_count(key) > 0;
-}
-
static inline void static_key_enable(struct static_key *key)
{
int count = static_key_count(key);
@@ -267,6 +262,17 @@ struct static_key_false {
#define DEFINE_STATIC_KEY_FALSE(name) \
struct static_key_false name = STATIC_KEY_FALSE_INIT
+extern bool ____wrong_branch_error(void);
+
+#define static_key_enabled(x) \
+({ \
+ if (!__builtin_types_compatible_p(typeof(*x), struct static_key) && \
+ !__builtin_types_compatible_p(typeof(*x), struct static_key_true) &&\
+ !__builtin_types_compatible_p(typeof(*x), struct static_key_false)) \
+ ____wrong_branch_error(); \
+ static_key_count((struct static_key *)x) > 0; \
+})
+
#ifdef HAVE_JUMP_LABEL
/*
@@ -325,8 +331,6 @@ struct static_key_false {
* See jump_label_type() / jump_label_init_type().
*/
-extern bool ____wrong_branch_error(void);
-
#define static_branch_likely(x) \
({ \
bool branch; \
--
2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
[PATCH 2/4] cgroup: implement static_key based cgroup_subsys_enabled() and cgroup_subsys_on_dfl() Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
[PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Peter Zijlstra <peterz@infradead.org> - 2015-09-17 11:10 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Tejun Heo <tj@kernel.org> - 2015-09-17 17:30 +0200
Re: [PATCH 1/4] jump_label: make static_key_enabled() work on static_key_true/false types too Peter Zijlstra <peterz@infradead.org> - 2015-09-17 17:50 +0200
[PATCH 3/4] cgroup: replace cgroup_subsys->disabled tests with cgroup_subsys_enabled() Tejun Heo <tj@kernel.org> - 2015-09-16 04:00 +0200
Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Zefan Li <lizefan@huawei.com> - 2015-09-18 11:20 +0200
Re: [PATCHSET] cgroup: use static_keys for subsystem enabled and on_dfl tests Tejun Heo <tj@kernel.org> - 2015-09-18 18:00 +0200
csiph-web