]>
Commit | Line | Data |
---|---|---|
9c92ab61 | 1 | // SPDX-License-Identifier: GPL-2.0-only |
579e1acb | 2 | /* |
2bf9e0ab | 3 | * Kernel module for testing static keys. |
579e1acb JB |
4 | * |
5 | * Copyright 2015 Akamai Technologies Inc. All Rights Reserved | |
6 | * | |
7 | * Authors: | |
8 | * Jason Baron <[email protected]> | |
579e1acb JB |
9 | */ |
10 | ||
11 | #include <linux/module.h> | |
12 | #include <linux/jump_label.h> | |
13 | ||
14 | /* old keys */ | |
15 | struct static_key base_old_true_key = STATIC_KEY_INIT_TRUE; | |
16 | EXPORT_SYMBOL_GPL(base_old_true_key); | |
17 | struct static_key base_inv_old_true_key = STATIC_KEY_INIT_TRUE; | |
18 | EXPORT_SYMBOL_GPL(base_inv_old_true_key); | |
19 | struct static_key base_old_false_key = STATIC_KEY_INIT_FALSE; | |
20 | EXPORT_SYMBOL_GPL(base_old_false_key); | |
21 | struct static_key base_inv_old_false_key = STATIC_KEY_INIT_FALSE; | |
22 | EXPORT_SYMBOL_GPL(base_inv_old_false_key); | |
23 | ||
24 | /* new keys */ | |
25 | DEFINE_STATIC_KEY_TRUE(base_true_key); | |
26 | EXPORT_SYMBOL_GPL(base_true_key); | |
27 | DEFINE_STATIC_KEY_TRUE(base_inv_true_key); | |
28 | EXPORT_SYMBOL_GPL(base_inv_true_key); | |
29 | DEFINE_STATIC_KEY_FALSE(base_false_key); | |
30 | EXPORT_SYMBOL_GPL(base_false_key); | |
31 | DEFINE_STATIC_KEY_FALSE(base_inv_false_key); | |
32 | EXPORT_SYMBOL_GPL(base_inv_false_key); | |
33 | ||
34 | static void invert_key(struct static_key *key) | |
35 | { | |
36 | if (static_key_enabled(key)) | |
37 | static_key_disable(key); | |
38 | else | |
39 | static_key_enable(key); | |
40 | } | |
41 | ||
2bf9e0ab | 42 | static int __init test_static_key_base_init(void) |
579e1acb JB |
43 | { |
44 | invert_key(&base_inv_old_true_key); | |
45 | invert_key(&base_inv_old_false_key); | |
46 | invert_key(&base_inv_true_key.key); | |
47 | invert_key(&base_inv_false_key.key); | |
48 | ||
49 | return 0; | |
50 | } | |
51 | ||
2bf9e0ab | 52 | static void __exit test_static_key_base_exit(void) |
579e1acb JB |
53 | { |
54 | } | |
55 | ||
2bf9e0ab IM |
56 | module_init(test_static_key_base_init); |
57 | module_exit(test_static_key_base_exit); | |
579e1acb JB |
58 | |
59 | MODULE_AUTHOR("Jason Baron <[email protected]>"); | |
60 | MODULE_LICENSE("GPL"); |