Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Kernel module for testing static keys.
0004  *
0005  * Copyright 2015 Akamai Technologies Inc. All Rights Reserved
0006  *
0007  * Authors:
0008  *      Jason Baron       <jbaron@akamai.com>
0009  */
0010 
0011 #include <linux/module.h>
0012 #include <linux/jump_label.h>
0013 
0014 /* old keys */
0015 struct static_key base_old_true_key = STATIC_KEY_INIT_TRUE;
0016 EXPORT_SYMBOL_GPL(base_old_true_key);
0017 struct static_key base_inv_old_true_key = STATIC_KEY_INIT_TRUE;
0018 EXPORT_SYMBOL_GPL(base_inv_old_true_key);
0019 struct static_key base_old_false_key = STATIC_KEY_INIT_FALSE;
0020 EXPORT_SYMBOL_GPL(base_old_false_key);
0021 struct static_key base_inv_old_false_key = STATIC_KEY_INIT_FALSE;
0022 EXPORT_SYMBOL_GPL(base_inv_old_false_key);
0023 
0024 /* new keys */
0025 DEFINE_STATIC_KEY_TRUE(base_true_key);
0026 EXPORT_SYMBOL_GPL(base_true_key);
0027 DEFINE_STATIC_KEY_TRUE(base_inv_true_key);
0028 EXPORT_SYMBOL_GPL(base_inv_true_key);
0029 DEFINE_STATIC_KEY_FALSE(base_false_key);
0030 EXPORT_SYMBOL_GPL(base_false_key);
0031 DEFINE_STATIC_KEY_FALSE(base_inv_false_key);
0032 EXPORT_SYMBOL_GPL(base_inv_false_key);
0033 
0034 static void invert_key(struct static_key *key)
0035 {
0036     if (static_key_enabled(key))
0037         static_key_disable(key);
0038     else
0039         static_key_enable(key);
0040 }
0041 
0042 static int __init test_static_key_base_init(void)
0043 {
0044     invert_key(&base_inv_old_true_key);
0045     invert_key(&base_inv_old_false_key);
0046     invert_key(&base_inv_true_key.key);
0047     invert_key(&base_inv_false_key.key);
0048 
0049     return 0;
0050 }
0051 
0052 static void __exit test_static_key_base_exit(void)
0053 {
0054 }
0055 
0056 module_init(test_static_key_base_init);
0057 module_exit(test_static_key_base_exit);
0058 
0059 MODULE_AUTHOR("Jason Baron <jbaron@akamai.com>");
0060 MODULE_LICENSE("GPL");