@@ -71,6 +71,7 @@ struct stack_record {
unsigned long entries[]; /* Variable-sized array of entries. */
};
+static bool stack_depot_disabled;
static bool __stack_depot_early_init_requested __initdata = IS_ENABLED(CONFIG_STACKDEPOT_ALWAYS_INIT);
static bool __stack_depot_early_init_passed __initdata;
@@ -91,21 +92,20 @@ static DEFINE_RAW_SPINLOCK(depot_lock);
static unsigned int stack_hash_order;
static unsigned int stack_hash_mask;
-static bool stack_depot_disable;
static struct stack_record **stack_table;
-static int __init is_stack_depot_disabled(char *str)
+static int __init disable_stack_depot(char *str)
{
int ret;
- ret = kstrtobool(str, &stack_depot_disable);
- if (!ret && stack_depot_disable) {
+ ret = kstrtobool(str, &stack_depot_disabled);
+ if (!ret && stack_depot_disabled) {
pr_info("disabled\n");
stack_table = NULL;
}
return 0;
}
-early_param("stack_depot_disable", is_stack_depot_disabled);
+early_param("stack_depot_disable", disable_stack_depot);
void __init stack_depot_request_early_init(void)
{
@@ -128,7 +128,7 @@ int __init stack_depot_early_init(void)
if (kasan_enabled() && !stack_hash_order)
stack_hash_order = STACK_HASH_ORDER_MAX;
- if (!__stack_depot_early_init_requested || stack_depot_disable)
+ if (!__stack_depot_early_init_requested || stack_depot_disabled)
return 0;
if (stack_hash_order)
@@ -145,7 +145,7 @@ int __init stack_depot_early_init(void)
if (!stack_table) {
pr_err("hash table allocation failed, disabling\n");
- stack_depot_disable = true;
+ stack_depot_disabled = true;
return -ENOMEM;
}
@@ -158,7 +158,7 @@ int stack_depot_init(void)
int ret = 0;
mutex_lock(&stack_depot_init_mutex);
- if (!stack_depot_disable && !stack_table) {
+ if (!stack_depot_disabled && !stack_table) {
unsigned long entries;
int scale = STACK_HASH_SCALE;
@@ -184,7 +184,7 @@ int stack_depot_init(void)
stack_table = kvcalloc(entries, sizeof(struct stack_record *), GFP_KERNEL);
if (!stack_table) {
pr_err("hash table allocation failed, disabling\n");
- stack_depot_disable = true;
+ stack_depot_disabled = true;
ret = -ENOMEM;
}
stack_hash_mask = entries - 1;
@@ -354,7 +354,7 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries,
*/
nr_entries = filter_irq_stacks(entries, nr_entries);
- if (unlikely(nr_entries == 0) || stack_depot_disable)
+ if (unlikely(nr_entries == 0) || stack_depot_disabled)
goto fast_exit;
hash = hash_stack(entries, nr_entries);